I am a little lost here. You told us that all the problems you have with your XML is that it has some unclosed tags.
XML::LibXML::Parser's recover flag will handle it, as the manual tells:
"The recover mode helps to recover documents that are almost wellformed very efficiently. That is for example a document that forgets to close the document tag (or any other tag inside the document)."
Now, you seem to indicate that some tags in your XML are corrupt. Well, I do not really know, how to handle that one...
Also, I do not think that you hit some obscure size limitations of XML::LibXML (you seem to get the error at the 85th input line).