Ho dato uno sguardo, e ho alcuni dubbi
Te li scrivo qui in quello che secondo me è un un'ordine di importanza decrescente
1 oggetto File è unico e globale:
Sei sicuro che la libreria Sdfat, che è un po' limitata, permetta la cosa? Ovvero che un oggetto File possa essere riaperto dopo chiusura? Non sei su un pc con un vero file system sotto, si tratta di un'approssimazione...
2 le scritte:
Le scritte di debug ti escono corrette?
Ovvero ti dice "apro il file" "chiudo il file" coi nomi giusti?
3 il file system
Quelle schedine sono piuttosto 'fragili" e la libreria implementa il FS in maniera limitata
Assicurati che il volume non abbia problemi smonta la scheda e mettila in un pc e fai un check del file system io non ho Windows, ma una volta c'era il comando CHKDSK
4 le stringhe
No, seriamente, fai uso degli oggetti stringa?
Evita. Non ho altro da dire
5 programma un po' prolisso,
Per debug e prova, in particolare del punto 1, fai un programma semplice, senza funzioni che si limitano a richiamare corrispondenti funzioni di libreria
6 variabili globali
Ne hai messe a iosa
Non è male in assoluto, ma non è buona programmazione