I think this line is part of your problem:
String charFilename = currentChar + ".tmp";
Since your printout shows currentChar == 'A' I think you are getting:
String charFilename = &".tmp"+65;
Since ".tmp" is only 5 bytes long and you are starting at the 66th byte I expect you will get something unexpected.
You can't concatenate a character and a character string. Try this instead:
String charFilename = currentChar;
charFilename += ".tmp";
I'm not sure that is the only mistake since many of the variable are not declared.