Hola, mi opinión es que si de todas maneras recorres el recordset uno a uno hagas la llamada a tu función de limpiar caracteres ahí mismo.
Ahora, me parece que al xsl le podrías aplicar otro template, hace un rato que no toco xsl así que estoy un poco oxidado, pero si no mal recuerdo podrías utilizar la
función translate de xsl, y me parece que el equivalente de tab en xml debería ser "	" aunque como dije anteriormente, me parece que es demasiado complicarse, pues también habrán otras cosas que quieras reemplazar, mejor haría la llamada a la función de VBS durante la iteración del recordset.
Saludos