It's interesting - the reason I thought you were using something coming out of a VISA VI, and the reason I suggested you use a control, is because I use this exact method for saving the settings myself (except I flatten to string and save to a binary file) and it works perfectly for me - I get the port back OK.
As far as I can tell, You only get a reference out of the VISA VIs, not out of I/O controls\constants. Are you changing the settings control elsewhere (local, another VI)?
You can still try using the other method I suggested (Resource Name property) to get the name, and flatten the name into the XML instead of the reference.
___________________
Try to take over the world!