Secondo me c'è un errore evidente nella logica della funzione palindromo: deve ritornare true solo alla fine del ciclo! Altrimenti basta che un controllo sia verificato per ritornare immediatamente true. Inoltre non è necessario ripetere la condizione con 'else if': è sufficiente mettere 'else'. Prova un po' a rivedere la logica e poi ne riparliamo.
Ciao!