Все оказалось достаточно просто -
$client->setSelect('*, (id = 1 AND category = 2) OR (id = 2 AND category = 3) as filter');
$client->setFilter('filter', array(1));
ну у меня такая ошибка была изза адресов типа /(.*)/(.*)/ а не простых get запросов. Там при создании кукисов не прописывается path. Я не стал париться и просто запихнул в функцию dTree.prototype.setCookie
строку path="/";
Ну вобщем там суть такая — в кукисах сохраняется ID открытого элемента, и при переходе между страницами, он будет открыт в любом случае, добавилось там что, или удалилось. ПОмоемй как раз то что вы хотели.