Couple of options:
1) Use a temporary (scratch) table to assemble the records from the main table, then remove them when done.
2) Use a Virtual List technique to build the desired data in a set of variables and display it from there.
Thanks for the help.
I've gone with option 1 and used a script to populate new records to a temp table. These few records are used in the relationship which then allows me to pull the correct information through to the temp table as calculations via the relationship. I've found that to be much quicker than ...set variable...go to layout...set field...repeat.
I've also added a second sort field which will act as the second part in the final report and this is held against the dupe records while they exist.