No hace falta que sustituyas tus caracteres como ñ y demás por su "entidad HTML" o bien los elimines.
Usa:
utf8_encode()
www.php.net/utf8_encode
y para no tener problemas con comillas ' (simples) .. usa a su vez:
stripslashes()
http://www.php.net/manual/en/function.stripslashes.php
Y el "encodign" del XML generado .. podrías usar en concordancia:
encoding="utf8"
(creo que es así .. revisalo).
Un saludo,