My repository has List, List and List where an Enrolment has Enrolment.Student and Enrol
There is no solution for this issue using the XML Serializer. It does not have a concept of identity that it might use to remove duplication.
The best you can do is to serialize the pool of objects separately from their references. You could then recreate your lists after deserialization.
BTW, are you aware that the XmlSerializer is not specific to C#?