Well, if you're going to use getters and setters anyway, why not wrap them in a property anyway and take advantage of the syntactic sugar:
Haha, I laughed when you called that "syntactic sugar". Taste sweet that does not... It's harder to interpret. For example, are those private methods? Are there implicit public methods, such as GetValue() or SetValue()? I knew this syntax existed, but unless I look it up again, I don't actually know how to access the property's value. It's also, to me, much less intuitive to type something like Foo.val.Get() (or, again, is that just the private getter?) than it is to type Foo.GetVal(). Maybe this comes from when I learned PHP (and other languages) and always->had->to->type->like.this().

I don't think there's any particular disadvantage to using properties instead of variables, and if the information stored in them should be externally accessible then they really should be properties. If you don't want your properties to be exposed to the Creation Kit, then declare them with the http://www.creationkit.com/Flag_Reference#Property_Flags flag.
Well even after reading http://www.creationkit.com/Save_File_Notes_(Papyrus), and forum topic after forum topic, I've still never seen a clear and concise explanation about their differences. To me, it seems like Properties are merely an abstraction of variables, which have ties (very strong ties, seemlngly) back to your plugin. Properties seems to have been made solely to make it easier on plugin designers (level artists, etc), and for this reason I generally steer clear of Properties unless I actually have to use them. I don't like defining every single thing in the CK, as I generally can't do much until it crashes on me. I also just don't like the script manager, properties window, etc. Again, it seems to me like it was made only to keep people from breaking the scripts.
And, after reading and re-reading the examples while writing this, I believe my assumptions about properties were correct, and that's why I avoid them. I read this page before but it was before I actually had gotten used to
using Papyrus, and not just reading up on it.
I also don't see any explanation there about these so-called "optimizations" on Properties, which I feel in the best case would bring it up to the same performance as variables. It is an abstraction after all, and one that is more permanently tied to the game/objects/script instances. I would actually guess Properties have more overhead during init / script creation because of the tie-in with the CK, game objects, etc.. In the OP's case, Health, Magicka, and Stamina aren't even game objects, but values stored on a game object. I feel like a Property should be used if you need to fill a reference, alias, etc., but to store ints, floats, bools, I don't see the point. If there is something I'm missing feel free to share.
So lastly, assuming properties -- actually you suggest using hidden properties, which I suspect is just compile-time optimized to be identical to a variable -- and variables are equal, both having custom setters and getters, what is the extra advantage of a Property?
Also, any implementation is still going to suffer from possible race conditions when sharing a variable across multiple scripts, but I'd like to know if GlobalVariables are optimized to be thread safe. I still would never prefer using globals, unless thread safety was guaranteed.