Arduino GPS Shield by iteadstudio.com

You can use pin 53 for the chip select signal to the sd card reader, there is no reason why you cannot.

What is the point of your "newdata" variable ? You set this if new data has come from the gps, but then you don't use it.

Your sd card may have had its formatting damaged. try to read the information which is already there. try deleting any existing log.txt file. Try reformatting the sd card.