Tak rzucając pobieżnie okiem na twój kod muszę niestety stwierdzić, że prawdopodobnie o wiele za mocno przekombinowałeś. To, co zrobiłeś, to tzw. "drabinka ifów" i jest to generalnie bardzo zła praktyka nie tylko pod względem algorytmicznym, ale także czytelności (generalnie bardzo rzadko potrzeba więcej niż 3-4 poziomów zagnieżdżenia). Więc zakładając, że wszystkie rozpatrzone przez ciebie "możliwości" są poprawne (nie sprawdzałem tego), zapewne nie uwzględniłeś wielu innych. Najlepiej by było, jakbyś napisał ten program z czystym umysłem całkowicie od nowa.
Spróbuj rozbić zadanie (problem) na kilka mniejszych podzadań (podproblemów). Tj. zacznij od algorytmu sprawdzającego, czy liczba jest palindromem i na nim się skup. Jak już zrobisz to, to rozwiąż kolejny podproblem, w tym przypadku algorytm odwracania liczby. Jak już uda ci się rozwiązać wszystkie podproblemy, to po prostu połącz je razem w głównej pętli, żeby rozwiązać ostateczny problem (całe zadanie). Powodzenia!