So what your saying is once sprite overlaps sprite pick both sprite, and sprite, and add them to a list of sprites that will not be picked again unless they overlap a previously unpicked sprite.
Yeah a pv wont handle recursion, so you need a list. Lucid's "S", Ars0nide's Datastructre plugs Deque, or even the List Box object will work. That with a pv, and a loop.
Actually Uid rather than pv might be better here....
Or multiple pv's
Then you wouldn't need a separate object as each sprite could hold its index, as well as an "is selected" pv. But then you have to get tricky with picking and pv's to avoid adding previously selected sprites.