If all of your soldiers use a weapon then I'd consider adding them in a container together, so when you pick a soldier its weapon is automatically picked.
I'd also pin (position only) the weapon to the soldier so that you don't have to keep repositioning it.
If you do use a container then rather than having a family it might be better to just have a single soldier object and set the team and class with a variable. You would have different animations for the teams and classes on the one soldier object. Same for the weapon: a variable for type, different animations for each type.
On start set variables and animations for each soldier/weapon then pin the weapon to the soldier.
Every tick for each soldier set weapon angle to Mouse X,Y.
The pin should then take care of all the repositioning.
On change of direction, unpin the weapon, mirror the soldier, mirror the weapon, reposition and repin.