So if I understand you correctly - if you add the processing instruction encoding='ISO-8859-1', MSXML outputs just E9 and not C3 A9, but the third party tool crashes? If that is the case, it is really the problem with the tool - MSXML's output is good. Having said that, if you want to get output encoded as windows cp1252 or ISO-8859-1 (still not sure what you mean by 'extended ascii' - there are numerous encodings that extend ascii) without the processing instruction, one way I can think of is to write your XML document to a temp UTF-8 file and then convert that file from UTF-8 to Windows CP 1252 (or whatever encoding you really want) in a separate step. Just remember - this will actually be an invalid XML file (because it lacks the processing instruction), but this tool may be happy with it.
Programming Blog utf8-cpp