You posses and unposses the pawns from the controller. It sounds like you only need one main player controller for a start.
If your building up a system, you could switch out sub-controllers that implement an interface and hand the current sub controller the input events so each different type of troop had a different set of controls based on common user inputs. I think that would be easier in C++ than Blueprints because it’s Object Oriented Programming, but maybe it could be done just in Blueprints, not sure.