Thank you for the post.
Global field values are global to the user, not to the database. Each guest maintains values in their global fields separate from other guests.
When a guest opens a file, the global field values are copied from the values for the host into the guest. If the guest's global field values are then changed, such as by running a script, they are changed just for that guest. They are not changed for the host or any other guests.
This is intended behavior to facilitate using global fields with scripts. The only way to reset the default value for a global field is to reset it from the host computer. Changes are saved only when the file is closed.
Some additional knowledge base articles which may add further clarification:
There are two methods I use to manage values in global fields so that I do not have to take the file down off the server in order to update the default value in a global field:
1) Store the values I want to see in global fields in non global fields. Use a script that is performed "onFirstWIndowOpen" to copy the values from the non global fields into the global fields. If I need to make a permanent change to the value of a global field, I edit the nonglobal field from which the value is copied.
2) I write a script that sets the value of the global field and then use the Server's admin console to run the script via a server schedule. Server scheduled scripts run from the "host" context so changes made to global fields will be retained.