I believe I may have discovered a bug in the JAXB unmarshalling/marshalling code.
I searched the Java Bug DB and found one that looked as though it may be related but I cannot see any useful information because all it says is "See parent" but there is no indication on how to achieve this. I may be making an invalid assumption in my test so wanted to be sure before I raise a new bug.
The Bug ID is JDK-2213911.
If there is no way to see this I will try and raise a new JAXB discussion on this forum and/or raise a new bug anyway.