Things that I would check...
is the section checked for a new page before.
I don't know if this is possible in a subreport, but does it have a new page before.
For a section, you can check the suppress if blank, that might help.
Keep together might force a page break to keep the subreport together.
To be sure about the empty subreports, you will need to select an instance of your data and then check the database to be certain.
you might also try putting a text field in each section that has a subreport, maybe one above and one below. These would serve as an indicator of what is happening in the report and form there you might be able to deduce what the cause of your blank pages.
HTH