Something isn't properly JOINed so you are getting what is called a Cartesian product. OR your filtration criteria are incorrectly specified and you aren't filtering out records you should be ignoring. One of those two will do it.
For the improper JOIN, the subreports will work better when a formal relationship exists (i.e. in the Relations window) between the parent and child tables. Failing that, if a parent and child have a decent JOIN between them, they will eliminate a lot of duplication.
For the improper filtration issue, if the report was supposed to focus on some particular value for a given field, that selectivity wasn't defined right.