If there may be spaces inside the object, this won't work as expected, and you might have to do something more complicated (like using replace to collapse each object into something more easily counted).
I've used "Selected-at" in order to figure out things like ratings, steps in a workflow, etc...
So maybe like a text string that has something like "First Second Third Fourth DNA DNA DNA DNA DNA"
where selected-at can return one value depending on a counter, or a repeat group position
when you compose first name 1, compose it as first_name_1
use the join to get a space separated list
do the selected at to get first_name_X
replace _ with spaces to get first name x