I can write to the local char array 'str' as I please but I cannot write to m_pchBuff in any way what so ever without getting garbage with a Serial.println call.
The Serial.println call on the local 'str' works just fine.
What is the difference? They are both simple char arrays!
I'd suggest that you get all that implementation crap out of the h file. It belongs in the cpp file.
Your class is worse than the standard crappy String class. Memory is allocated using new, but it is NEVER deleted, even when the object that allocated it goes out of scope.
m_pchTempBuff is never pointed to anything, and yet you try to write to it, often.