Я знаю, что это было довольно давно, но в коде есть ошибка, и, поскольку она показала мне результаты Google, я считаю, что должен исправить это для всех, кто сталкивается с этим.
SPNavigationNodeCollection SecondLevelWebs = FirstLevelWebChild.Navigation.GlobalNodes [0] .Children;
Должно быть
SPNavigationNodeCollection SecondLevelWebs = FirstLevelWebChild.Children;
Используя FirstLevelWebChild.Navigation.GlobalNodes, вы снова получаете корневую навигацию вместо суб-навигации, которую вы намереваетесь получить.