Rich,
The way that I impemented something similar, I found out that you need to run each subsequence in a new execution. That new execution should generate a separate Report file.
In the subsequence call, "Specify Module", in the Multithreading and Remote Execution, section, select "Run Sequence in a new Execution". You MAY have to set your Mainsequence to execute without a Process Model, I had to set this up, but it could have been for some reason other than the separate report for each subsequence.
In the "Settings" button, you may need to enter "RunState.Execution.TypeMask.Value" in the Additional Execution Type Mask Settings". I have this set, and I think that it was so that if I did a "Trace" into the sequence, that it would also trace into the subsequence.
I created a custom step for that creates the SubSequence call that is inserted when I want a different test run so that each generates a separate report name.
For our testing, we have a "Main Test" sequence that lists all of the different tests that we have to run. On startup an array is generated that contains each step name and is passed to a VB Form where we check off each test we want to run. As each test is run, a separate report is generated. I am also then able to rename the report (through another VB call using a StationGlobal variable) to indicate the number of failures in each test as a part of the reportname.
Mike