Wiem, że są optymalniejsze sposoby implementacji tej funkcji lecz mi zależy na tym aby skorzystać z rekurencji oraz konwersji liczby na napis
Twój wybór, ...
... zobacz jak zachowuje się liczba przy każdym "wywołaniu" IleCyfr2
[ on-line ]
...
uint z_rek = IleCyfr2(liczba / 10);
string napis = liczba.ToString();
Console.WriteLine(":: " + napis);
uint tu;
...
spróbuj np. "odwrócić" za pomocą Reverse() z System.Linq
[ on-line ]
string napis = new string(liczba.ToString().Reverse().ToArray());
lub odwoływać się do ostatniego indeksu
[ on-line ]
if (napis[(napis.Length - 1)] == '2') { ...
[ on-line ]
...
using System.Linq;
...
if (napis.Last() == '2') { ...
BTW, od wersji C# 8+ można np. użyć operatora ^
// [^1] oznacza ostatni element odpowiadający [arr.Length - 1]
if (napis[^1] == '2') { ...