sigh
It turns out that the member vanishing from the object when it was returned to a function outside of its class but not when returned to a function inside its class was due to Visual Studio’s intellisense getting confused somehow. a colleague with Visual Studio 2013 (as opposed to 2012 Express) does not get this issue.
solved Class losing data if returned from a function outside of the class