Not quite sure if this helps, but typically when I'm using Library Globals to control parameters I do two things.
First, have a boolean parameter for allowing the object to be globally controlled which also locks out the parameters that are being controlled.
And Second, when calling the value from the globals (typically in the master script) I give the parameter the MVO value (upon successful read) without using the 'PARAMETERS' function.
`parametername = requestedparametername`
Then immediately following that you can use the parameters function to store the value if you want to actually change the object ie.
`PARAMETERS parametername = parametername`
By doing it this way I've found the object will always reflect changes given to it by the MVO's as it doesn't have to run the parameters script to incorporate the received value as it moves through the rest of the scripts. And when you open the object the parameter script runs and the parameter also displays correctly.
AC 24 5004 AUS
iMac OSX (10.13.6) 4.2ghz i7
8gb ram/8gb vram