Oltre a quanto già evidenziato da Oregon, la logica del codice è gravemente errata e inutilmente complicata. Peraltro è anche incoerente con la convenzione di ritorno della funzione Palindroma() che tu stesso hai scelto.
Un secondo array non è affatto necessario, ma anche nel caso in cui lo fosse, la copia delle stringhe dovrebbe avvenire con funzioni come strcpy() o strncpy().
Tra l'altro, lavorando in C è opportuno evitare la sintassi C++ per la dichiarazione in-place della variabile di induzione nella for().
unsigned int Tot_palindrome = 0;
unsigned int i;
...
for (i = 0; i < 4; ++i)
{
if (1 == Palindroma(s[i]))
{
/* Qui si incrementa il contatore e si scrive direttamente la stringa nel file */
Tot_palindrome++;
fprintf(...);
}
}
Il testo del problema, come riportato, è comunque ambiguo e non specifica esplicitamente di scrivere nel file le
sole stringhe palindrome, anche se questa è la tua interpretazione.