Have you tried using
PartOf on the sub-units of the target group in addition to
Wants in the target? Ex:
Wants=foo-sub1.service foo-sub2.service in
foo.target. I just tried this and was able to start and stop all my sub-units just by starting and stopping the target.
Configures dependencies similar to Requires=, but limited to stopping and restarting of units. When systemd stops or restarts the units listed here, the action is propagated to this unit. Note that this is a one-way dependency — changes to this unit do not affect the listed units.
When PartOf=b.service is used on a.service, this dependency will show as ConsistsOf=a.service in property listing of b.service. ConsistsOf= dependency cannot be specified directly.