Ohne ein reproduzierbares Minimalbeispiel wird das schwierig. Was ist diese Liste? Was ist ein TCodeSystemElement? Das "IntfClear" spricht eigentlich dafür dass man hier durcheinander gekommen ist in Bezug auf Interface/TObject-Referenzierung. Er scheint also eine Interface-Variable freigeben zu wollen aber das dahinterliegende Objekt wurde bereits zerstört.
Auch: Mir ist das etwas gruselig in einer einzigen Methode CoInitialize / CoUnInitialize aufzurufen. Was ist wenn dein Destruktor oder sonstwas (unbewusst) noch etwas mit der MS-
XML-Engine macht während du mit CoUnInitialize schon alles wieder abgebaut hast?