If your old code doesn't accept correct XML the right answer really is to fix the old code. The two forms are semantically identical, and if the code doesn't accept that it isn't processing XML no matter what it claims.
If you absolutely can't get it fixed, I'd suggest you write a separate stage which processes the XML file as text, finds the empty-element form you don't like, and replaces it with the one you do. WARNING: Doing this properly is not easy; you have to deal with CDATA Section escaping and so on. Your best bet would probably be to get your hands on a correctly-written open-source XML serializer, such as the one in the Apache code, and modify how it handles empty elements.