Something must have changed if this worked properly before. First step would be to trouble shoot the queries behind the report/sub report. Unless you can look at their design and get a feel for why a set of records is repeating, you're probably going to have to play around. One reason could be that there are more fields in the query than used on the report, and the unnecessary fields are causing what looks like unique records to be repeated, when in fact, the part you don't see makes what you do see repeat. Or perhaps the join(s) between tables has been inadvertently altered.
If the issue isn't obvious in design view, try running the queries. If you get prompted for input that seems to be asking about a report control name, I suggest you copy these queries and open the report normally and note what values are valid (maybe PO number?). Open the copies in design view and replace any criteria that references a report or sub report control with the valid value and try running again. Once you get them working, and if the sub report records are being repeated, the challenge will be to figure out the cause if it's not obvious to you. This might require you to compact and zip a copy of your db and attach it to a post as this could be one of many causes. You can start with a copy with sensitive data removed as long as there's enough supporting records/tables to replicate the problem. Not sure how many here can work with 2016 db's. I usually cannot because people usually include certain things that older versions don't support.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.