How can I force a function to replicate

I am trying to wrap my head around replication but for whatever reason I cannot get a variable to replicate properly.

I have a onscreen display function that runs when the value changes using a repnotify. That works fine whenever the player interacts with it the increase happens and I can see the change both in VS and in the ingame display. But if I decrease the value it shows the updates are correct inside the function and it works fine until the player interacts again then it goes back to the full value as if it was never changed.

I have a set function but if I try to check for RoleAuthority it fails except when I use the player to interact with it.

What do I need to do to make the function run properly in code as I was able to accomplish it in blueprint without issue using the Switch on Authority?