I'm sorry but, if you use 3rd party libraries for read variables, I cannot tell you what might be wrong. You have TWO levels of abstraction between your code and the real SDK, the C# library, which calls FSUIPC, and FSUIPC itself, which calls the actual SDK, so it's very difficult to know what's going on.
As explained in the GSX manual at the end, variables sometime can change their ID between sessions, and depending which program has defined them first so, in order to be sure the variable is read or written correctly, the ID should always be checked first. However, you can be sure you are doing that only if you write your own code in C++, using the Gauges SDK or, in P3D4, the Panel interface of PDK.
I can only guarantee, because I know how our code works in reading and writing, the variables ARE correctly updated.