И все же... Кеширования нет, фильтр стоит уже на двух магазинах (старее фильтр и новее), и везде одно и то же. Дебажим Вашу инъекцию в модификаторе модели товара, а именно в getTotalProducts():
И получаем:
Из этих "блоков" только первый принадлежит фильтру (вызов из категории ), остальные были вызваны в контролере хедера для подсчета кол-ва. И в каждый из них прилетела "добавка" от фильтра, хотя должна была бы быть только в первом блоке, а в хедере должен быть полный расчет, без доп кода от фильтра. И конечно, меняя что то в фильтре получаем каждый раз разные цифры в хедере в названиях категорий. Понятно, что эти цифры обычно никто не использует и отключает (прямо как отключено у вас в демо-магазине), но чинить то нужно.
И не могли бы Вы включить в демо-магазине этот подсчет? Очень хотелось бы посмотреть что там у Вас с ним.