In my experience SVs have generally been pretty reliable, except when they aren't.
The most interesting solution to a SV failing to update I've found wasn't in code, but by running the Distributed System Manager. With the DSM running and the libraries with the problematic variables expanded, the variables updated without a hitch. If the DSM was closed or the libraries not expanded, the code would be writing to the variable, but the updated value would never get read on other machines (cRIOs). Very strange.
Have you tried disabling firewalls on both the server and client PCs?