A loop would seem the correct option, but I wouldn't set this up to loop through the portal rows, I'd pull up this set of records and loop through them using duplicate record while updating the match field of each newly created record to match to the correct parent record.
This script may have some useful ideas: Duplicating Bill Of Materials (duplicating portal line items)
Thank you Phil, the omit record was what i was missing in the loop.
I am going to the table not the portal. When i duplicated the record it took me to that record... the last one... Was trying to figure it out when i saw your response and article.
I had to step through such a looping script and watch how the current record changed before I figured this one out the first time around--another way that the script debugger that comes with FileMaker advanced can be very useful.