Make sure the change is actually relevant, otherwise it may get optimized away. So add a space or empty line in the Serial output, not just anywhere.
Unfurtunately, I had already dismantled it and put another project together.
However, I have wired it up again as I was very interested in the result of what you suggested as I hadn't tried that scenario.
Upon wiring completion I plugged in the SD card, connected the USB power lead and compiled the code. File retrieval was good every time. Just to replicate the fault, I then left the card plugged in, the power on, changed the file name, and recompiled the code. And what do you know..... it worked. I tried it several times and it worked fine every time. I then change the file name back to the other file and tried again. It still worked fine. I am absolutely gobsmacked....... I spent hours on this yesterday and could replicate the fault every time. Now I can't replicate the fault at all. Do you think it could have been a connection problem? The code is exacly the same.