У меня была аналогичная проблема с "путь по сайту", описывал в баг-трекере. Суть ее в том, что для построения пути брался не ID категории, а ID товара, из-за чего все перемешивалось, а когда не было совпадений ID товара и категории, просто игнорировалось. Сегодня нашел решение, не универсальное, так как особо не разбирался, но работает.
В файле components/com_scatalog/views/products/view.html.php есть строка $category = $this->getModel('category')->getCategory($categoryId), где ID категории передается правильно, а возвращается уже нет, потому что в функции getCategory оно не учитывается. Чтобы не "сломать" что-то другое, делаем копию getCategory (она находиться components/com_scatalog/models/category.php) и вместо $this->_id используем переданное ID категории (не забываем в view.html.php указать название новой функции). Работает!