Mark each instance of the subsystem as atomic. When marked atomic, it will generate only one output file for all instances.
Secondly, you can place your subsystem in a library. When you use a library block, each copy refers back to the original library block. Changing the library block will cause every instance to have the same change.