if they are not patterned, right click on the end module and select "make independent" this will prompt you to save it out as a new assembly name. further edits to that sub-assembly will not affect other sub-assemblies.
if you do not want another sub-assembly file, you can make it virtual after making it independent. or instead of making it independent, you can dissolve the sub-assembly.
if it is in a pattern, you would need configs to select other versions of it, so I would recommend shortening the pattern by one, and use the above method(s).
brilliant!. Thanks all for the options this seems the easiest, I was doing the save AS COPY but who knows i might have just been going crazy, this sounds bullet proof. Appreciated.
SW introduced a nasty little function a couple of years ago, where deleting a component (that belonged to a sub-assembly) in the graphics area of a main assembly would edit the sub-assembly without warning. It sounds like that's what's happening to you.
If you don't want to create configurations of your sub-assembly then I'd suggest removing the parts with assembly cuts, selecting the desired components to be affected by the feature and making sure that "Propagate feature to Parts" is not selected at the bottom of the PropertyManager. Of course if you have a BOM that may/will mess it up, since the cut out components will still be counted.
Edit: ...or do what Jeremy said. I didn't think of that.
I can't tell from your picture what you're trying to change, but it sounds like making a configuration of the original part might be simplest. Then even in the pattern you can edit and have one instance use an alternate configuration to be different. But in this new configuration you would need to suppress the unwanted features. You can't delete them or they are gone from all configurations.
Otherwise you would want to SAVE AS COPY (checkbox at bottom of save as dialog box) so that it doesn't affect your original part when you open that new part.