Hello @Turts.p ,
If you want to make the health is shared between multiple char, you can save the Health related variable in the class that still the same even tough you are switching between char like Game Mode class, player controller also doable (might not work if you use different player controller possessing), or maybe game instance. When you take the damage, just reduce the health from the class that stored your health variable.
Also for your second question, you can prevent the not possessed or uncontrolled character by checking it first on the TakeDamage. Is this class is the possessed character or not, if it is then damage, if it is not just ignore. You can do that by also store the possessed character pointer in the game mode / the same class you store the health, and check it whether its matching or not in take damage.