Hi,
There are 2 ways I can think of to do this.
Approach 1
———–
You need not go for a sub process but have one service task where in you loop from 1 to n persons and then based on some condition, you remove the unwanted ones from the list.
Approach 2
————
As you have used, make use of a call activity to loop over the persons and in the sub process have one service task to check if the current person object from the collection which was passed as a variable to the sub process can be part of the list or not. If it cannot be part of the list then just remove the person object from the list and overwrite the process instance variables collection with the new list.