Для таких целей я обычно пользуюсь подходом от demodizzy: там есть специальный шаблон, который отвечает за вывод при 404 ошибке. Он лежит в /templates/demodizzy/xslt/modules/content/404.xsl и выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:umi="http://www.umi-cms.ru/TR/umi">
<xsl:template match="/result[@method = 'notfound']" priority="1">
<xsl:variable name="error-page" select="document(concat('uhttp://', @domain, @pre-lang, '/notfound/.xml'))/result/page" />
<div class="notfound" umi:element-id="{$error-page/@id}" umi:field-name="content">
<xsl:value-of select="$error-page//property[@name = 'content']/value" disable-output-escaping="yes" />
</div>
</xsl:template>
</xsl:stylesheet>
В нем указывается либо как тут - взять информацию с конкретной страницы
<xsl:variable name="error-page" select="document(concat('uhttp://', @domain, @pre-lang, '/notfound/.xml'))/result/page" />
Либо просто туда пишется нужный текст. Зависит от потребностей и пожеланий клиента
В demodizzy это делается так: в файле /templates/demodizzy/xslt/modules/content/common.xsl дописывается строка
<xsl:include href="404.xsl" />