On the OPML-DEV mailing list, Andrew Houghton confirms that undeclared entity declarations can prevent an XML file from being well-formed.
Les Hill has sent me some code that solves this problem for an OPML browser written with Java that uses JDOM. I'll be posting more on it soon when I have time to try it out. He says that to read OPML, it "basically replaces the SAX parser with an almost identical parser that will recognize the XHTML entity set." Ouch.