Your code is "converting" the object at element position 0 (an instance of MyDataType) to a string - but since it's an object, you are getting the type name.
I'm assuming you want "nut" to appear in the text box. If so, the code that does this is:
textBox1->AppendText(arrayObject[0]->name);
If you add a "toString" method to your "MyDataType" class, you could change your code to:
textBox1->AppendText(arrayObject[0]->toString());
Assuming, of course, that your "toString()" method returns a string with the data contained in the "^name" property.