I've discovered how convenient std::string is -- no more stupid crap. Requires a few work arounds here and there but for the most part it's all good.
I decided that I'd create the char* as a class member variable. It's handy when it comes to needing to get a reference to the data I'm loading up and it's proved pretty useful so far.
I've use the JIT debugger and, while it's been somewhat helpful, I'm still unable to really figure out how to get certain variables.
Either way, I've localized the problem to a good bit of code that I wrote for the internal 'gui' system. Seems that somewhere in that code memory is being overwritten because as soon as I comment it out all other problems seem to be resolved. I don't know if this is a case of 'false logic' that will come back to bite me in the ass later but I still want to take a different approach to the GUI system anyway. Sometimes it's good to just throw away small sections of code and rewrite them... so my experience has shown at least.
Thanks again for all of the tips and the overwhelming amount of support I've received!