I think you might be a bit mixed up, when you look at 32bit data the least significant bit is all the way to the right. So when you break up a 32bit variable into two 16bit pieces of data with the GET16HIGH function, that returns the data from bit 8 to bit 31, that is the upper part of the 32bit variable. When you store your data in the DM memory, you need to place the upper part of the 32bit data one place to the right of the lower part. For example:
DM[1]=A
DM[2]=GET16HIGH(A)
then let the HMI look at DM[1] with the field setup as a 32 bit datatype and you should see the correct result.
I will be checking back here in awhile, if you still are having trouble, just reply to this message.