1. если вы вводите заголовок вручную какой у вас получается код? (так как этот-то вариант должен был первым сработать как самый простой)
А также включите режим debug (http://help-dev.umi-cms.ru/part.Config.debug.html) и покажите что пишет ситема при написании заголовка вручную
2. если вы хотите динамически подставлять заголовок то посмотрите с каким кодом вы работаете и откуда пытаетесь вытянуть category-id
<xsl:variable name="category-name" select="document(concat('upage://', category_id))/udata/page/name" />
судя по вашему коду, вы рассчитываете что у узла <udata> есть узел <category_id> содержащий нужный вам id, но при использовании макроса getCategoryList
эта информация содержится как атрибут @category-id узла <udata>
<udata category-id="4015" module="catalog" method="getCategoryList" generation-time="0.023509">
в итоге как минимум есть ошибка при создании переменной, может и еще что-то но сразу на глаз не видно, попробуйте вот так
<xsl:variable name="category-name" select="document(concat('upage://', @category-id))/udata/page/name" />
<h2 umi:element-id="{@category-id}" umi:field-name="name">
<xsl:value-of select="$category-name" />
</h2>
то есть
<div class="left">
<h2>Каталог товаров</h2>
<div class="left_catalog">
<xsl:apply-templates select="document('udata://catalog/getCategoryList/void/shop/')" mode="left-column" />
</div>
белый экран
<div class="left">
<div class="left_catalog">
<xsl:apply-templates select="document('udata://catalog/getCategoryList/void/shop/')" mode="left-column" />
</div>
сайт отображается?
проверь еще кодировку файла в котором находиться эта запись, должна быть utf-8
насчет того что динамика не выводит что надо, приложи сюда файл /layout/default.xsl и файл в котором шаблоны для левой колонки