Test environment: VRCSDK3-UDON-2020.04.25.13.00, Client Build 921
In this test, the program will take ownership if the you aren't object owner. And immidiately after it ensured being owner, it writes synced variable only once.
If instigating player is not the owner in advance, the variable changes its value, but goes back to previous value immidiately (maybe at the next frame). The player is like being treated as non-owner, through the player is already owner at the moment.
Workaround:
Use delay timer before writing synced variable, if instigator is not object owner.
I put up more description in repro world.