А>были у меня похожие глюки. Получалось так из-за того, что в заголовке xml стояла кодировка например UTF-8, а сам файл был в windows-1251 или объявленная кодировка в заголовке и самого файла совпадала, но при чтении этого файла я указывал не правильную кодировку.
У меня делается так: считывается xml-файл, а потом он сохраняется без каких-либо изменений.
В исходном файле в заголовке стоит windows-1251. Кодировка, вроде, правильная (в Far'е Win — windows-1251?).