Да, некоторые описания в api способны ввести в медитативное состояние
метод GetStructureForParent() использовать, кажется, не доводилось, но есть некоторые идеи:
1. Попробуйте перед вызовом этого мметода просто вызвать
$structure = new Structure();
$structure->GetStructure($separator, $site_id, $menu_id, $level, $parent_id);
передав все нужные параметры, хотя этот вызов кажется несовсем логичным, но результат выполнения этого вызова нам не нужен, а массив StructureParentMass, как мне кажется, должен при этом заполняться сам.
Если же это не поможет, можно попробовать еще вот такой вызов
$structure->StructureParentMass = $structure->GetStructure($separator, $site_id, $menu_id, $level, $parent_id);
явно указав заполнение массива, хотя такой вариант немного противоречит идеологии ООП (объекты не должны допускать прямого обращения к своим полям, всё взаимодействие с полями объекта должно осуществляться через метода объекта), но тут уж ничего не поделашь, как нынче модно говорить "ООП в ПХП такое ООП"
ИМХО, в идеале, при вызове метода GetStructureForParent() должна бы происходить внутренняя проверка заполненности массива StructureParentMass, и если он пуст то должен следовать внутренний же вызов метода, этот массив заполняющего.