Не очень понятно, что именно вы спрашиваете.
С точки зрения пользователя, удобно когда система ищет по сложному запросу, каждый из слов которого является допфильтром.
Например "Сергеев МСЧ" найдет всех сергеевых и фильтранет их по принадлежности к МСЧ. Так как у вас дерево, то чтобы такой поиск работал, нужно дочерним сущностям передавать все атрибуты родительских. Если я наберу просто "МСЧ", то получу всех людей у которых есть атрибут МСЧ. Соотественно, в словарь для поиска надо так же добавлять должность, и, возможно, номер.
Рузальтатом поиска в TreeView, соотетстенно, должно быть другое TreeView где показаны только нужные результаты, но сохранена древовидная структура.