I'd recommend using "EUD Editor 3" which has ways to easily change units max life (give units shields) and change weapons when needed.
How I do it in EUD Editor 3:
Condition: "Whatever condition you want"
Action: (SetUnitsDat) "ID:0 Terran Marine | GroundWeapon | 2 | SetTo" (There are korean letters inbetween but these can be ignored)
This action can be read as "Set Terran Marine's Groundweapon to 'Weapon ID: 2'" which is C-10 Canister (Terran Ghost's Weapon). As a result,
the Marine's ground weapon will be a terran ghost, but the air weapon will still by Gauss Rifle. You can switch this too be just having GroundWeapon be AirWeapon instead.
To find out the actual ID and the name of said thing being changed, you will want the DatEditor open as the left panel gives ID number and hovering cursor over the modifiable content disables a tooltip stating the parameter name
I.E. The "Armor" value displays the ID of the type of armor, with "0" being "Terran Infantry Armor" and "1" being "Terran Vehicle Plating." However, in the trigger for modifying UnitDat, it will be listed as "Armor Upgrade" instead.
Similarly, Armor Strength displays the unit's actual armor (Terran Marine has 0 starting Armor, while a BC will have 3 starting Armor), but in the trigger to modify UnitDat, it is listed just as "Armor." So try to ensure you are correctly changing the correct thing.
Beware, triggers made in the EUD 3 Editor also default to "Perserve Trigger" and you must uncheck the box in the topright corner of the window labeled "Perserved Trigger" to prevent it.
In this way, you can also have special effects such as having timers that automatically "upgrade" enemy AI armor and attack throughout the game and other things.
Trigger location is located under the "Lua" tab and then under the >DatFile tab. (Note: Use "SetUnitsDat." You'll notice you can modify a lot of other stuff (however, Set applies the effect).
Hope any of this helps.
None.