Try:
NavItems.Reverse();
return NavItems;
List<T>.Reverse() is an in-place reverse; it doesn’t return a new list.
This does contrast to LINQ, where Reverse() returns the reversed sequence, but when there is a suitable non-extension method it is always selected in preference to an extension method. Plus, in the LINQ case it would have to be:
return someSequence.Reverse().ToList();