If I compile your code, I get a number of warnings (I have warnings turned up to the max) that you should probably address. Although your free memory seems constant, I would also get rid of all the Strings in the sketch too.
I'm not convinced that those things will resolve your issue, but I'd be more inclined to dig into a version of the code that is cleaner.
I have been playing, and if I comment out the call to RemoteXY_Handler() I can un-comment all my code, and pin 12 remains clean.
So it seems that RemoteXY_Handler is eating my free memory at a huge alarming rate, and my numbers indicate it is grabbing 1060 bytes (+/-1).
The Strings go to RemoteXY, it's the only way to get dynamic text onto the screens.
I'm going to open up the include files and see if I can find out why, but I'm no expert, and don't really know what to look for.
Unfortunately, the developer of RemoteXY appears to have "lost interest", doesn't respond to users' requests for help, and is making no attempts to do any development or debugging on this system, hasn't posted in his own forum since April, while still collecting license fees.....
If anyone else would like to have a look, the library is available from here