This seems to be caused because you've got variables in each of those objects with the same name. So inside your WinMain.cpp you'll have bool gameRun; and then another copy of that inside UGE.h.
If you want to have them all the same variable with the same value. You can put it inside a Singleton object that everybody can request from.
e.g Configuration::instance().getGameRun(); http://en.wikipedia.org/wiki/Singleton_pattern
Or, you can define it in 1 location and have the other locations pre-fixed with "extern" so they use the single declaration from elsewhere; thus it's a global variable. This approach isn't recommended because you cannot encapsulate the variable and anyone has read/write access to it with no controls. It also makes it hard for you determine what code has modified it; Using a singleton allows you to debug on the method call to change it etc.