Lwymierna l1 = new Lwymierna(3, 5);
Lwymierna l2 = new Lwymierna(2, 5);
Console.WriteLine(l1 < l2);
Tu oczywiście jest false, bo 3/5 > 2/5 ;) Ale zakładając inne porównania, faktycznie masz buga:
if ((l1.licznik/l1.mianownik) < (l2.licznik/l2.mianownik))
Dzielenie liczb całkowitych daje liczbę całkowitą. Czyli 3/5 == 0. A 0<0 jest false.
Spróbuj zamienić liczby na zmiennoprzecinkowe, to porównanie będzie poprawne. Przy okazji tego if'a można uprościć:
return (1.0*l1.licznik/l1.mianownik) < (1.0*l2.licznik/l2.mianownik);
Lub
return ((double)l1.licznik/l1.mianownik) < ((double)l2.licznik/l2.mianownik);