Arduino does not support hardware CRC but SdFat has software CRC which is normally disabled.
Could you please edit SdFatConfig.h at about line 35 and enable CRC like this:
#define USE_SD_CRC 2
Then run SdInfo again. This may give a better indication of where the problem is.
It would be great if there was a way to connect MISO directly without the level shifter. Most SD shields connect MISO directly. This works even though a high level of 3.3V seem marginal as an input to the ATmega.
The spec says the Min high input is 0.6Vcc. Guess it works since the Max low input is 0.3Vcc.
I checked some posting on AVR Freaks and the claim is:
The AVR clearly has much better specification, as at 5V vilmax is 0.42*Vcc=2.1V and vihmin is 0.52*Vcc=2.6V.I guess this is why commercial shields work well.