Long story short, you’re going to want to move the Inventory variable, and your ArmourActive and WeaponActive booleans into your custom GameInstance; then have your widget/character use those values. You can do it in exactly the same way, just pull the values from the GameInstance rather than from the Character reference.
I’d suggest moving the SetArmour and SetWeapon methods into your MyCharacter class, rather than in the widget. Then just have the button clicks call those methods. This will keep everything a bit cleaner, and avoid having to do unnecessary casts.
Then in your MyCharacter class, either in the Construction Script, or after BeginPlay, call SetArmour and SetWeapon.