Действительно, в корень выкидывает.
Видимо потому, что сами метки в корне магазина находятся, что ли. Наверно нужно как-то указать, что в случае фильтрации по меткам применять фильтр не к текущей группе, а к /shop/tag/tag_name/
Но вот как это сделать, интересно)
<form method="get" action="{/shop/path}{//group[@id=$parent_group_id]/fullpath}">
Здесь, как я понял, указывается путь при применении фильтра...
Мой ламерский мозг смог придумать только то, что можно добавить условие
<xsl:if test="count(selected_tags/tag)
и написать 2 варианта: для меток задать путь для меток, а для остальных задать тот путь, который есть сейчас. Но не уверен, что это будет работать))) И это опять повторять большой кусок кода, наверняка проще можно как-то..