Have you tried taking out as much code as possible to make the problem still happen? For example, what happens if you replace the playfile() code with a single Serial.print statement? If the problem still exists, take some code out from somewhere else... this way, you have a lot less code, but you still have the problem which is then easier to track down (you just removed half the haystack).