How many iterations of this loop
foreach (Taxon t in children)
{
taxnav.Add(rootitem.UrlName.ToString(), t);
return GetAllTaxonomyChildren(t.Name, taxnav);
}
will get executed, given the return statement?
You either need a result collection where all iterations keep adding results to, or you could use the yield return scheme, example here:
Virtual Collections and Yield Return[
^]
:)