without the code I was only able to understand what you mean thanks to your update.
It is not global variables that get pushed to Cloud, but the ones defined in the thingProperties.h file.
If you look at that code you will see your variables and it getting "connected" to the Cloud Property inside the initProperties() funciton.
Those variables are global, but they only get pushed because they get connected insde that.
When you have a local variable (a variable defined in a function) that has the same name of a global variable, the global variable is ignored in favour of the local one.
This is true for pretty much every language, and it's a very common beginner's mistake.
here's an example
int counter = 0;
void setup(){
}
void loop(){
int counter; // this defines a new local variable
counter = 10; // this thinks we're using the one from the line above
}
hope it helps, it's a mistake we've all made at some point in our programmers' lives