Покажите шаблон, пожалуйста. Конструкция 404 страницы правильная.
Была такая проблема на одном проекте, программисты или сеошники намудрили что-то.
Я вышел из ситуации, добавив такой универсальный обработчик в init.php
AddEventHandler('main',   'OnEpilog',   '_Check404Error', 1);
function _Check404Error(){
	if(defined('ERROR_404') && ERROR_404=='Y' || CHTTP::GetLastStatus() == "404 Not Found"){
		GLOBAL $APPLICATION;
		$APPLICATION->RestartBuffer();
		$APPLICATION->SetPageProperty("keywords", "Страница не найдена");
		$APPLICATION->SetPageProperty("title", "Страница не найдена");
		$APPLICATION->SetPageProperty("description", "Страница не найдена");
		$APPLICATION->SetPageProperty("ADDITIONAL_TITLE", "Страница не найдена"); // Это кастомная вещь, если тайтл переопреелен, как в моем случае - вам, возможно не нужно.
		$APPLICATION->SetTitle("Страница не найдена");
		require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
		require $_SERVER['DOCUMENT_ROOT'].'/404.php';
		require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
	}
}
Сайт агентства, если кому потребуется помощь 
edvancemedia.com