I'm a little confused on what you are asking. You insert a subassembly into a main assembly, and then delete components from the subassembly? Then you save the main assembly with a new name and check it into Workgroup.
If this is what you are doing, you will need to save a new version of your subassembly, not just the main assembly. If you are wanting to get rid of the subassembly and just have it's components inside the main assembly, you can dissolve it (this will move the components to the main assembly and remove the subassembly).
I'm not sure if I understand 100% what you are saying, but I think your problem is probably with subassemblies that you are changing but not checking back in. Lets say you have the top level assembly TopAssem, which contains a subassembly SubAssem. Now lets say you delete parts out of SubAssem and then try to check in the new TopAssem. If SubAssem already exists in the vault and you are not checking it in, only checking in TopAssem, then the next time you check out TopAssem it will retrieve the old version of SubAssem with all the parts you don't want.
To get around this you have 3 options:
1. Take ownership of and check in SubAssem with the TopAssem so that everything gets updated in teh vault. But keep in mind that this will update every other assembly that contains SubAssem with your most recent changes.
2. Save SubAssem under a different name so you can check it in as a new file along with the TopAssem.
3. (recommended) Dissolve SubAssem so that the parts are all part of TopAssem, then all the part info will be saved when you check in TopAssem.
I hope that's clear.