Slowing down the SPI clock is easy to try.
Worth trying, for sure. I just spent a couple days debugging an error in my block device driver that only showed up when I was running multiple tasks to multiple SD cards. Eventually, I tried halving the SCK frequency from 12.5 MHz to 6ish, and, whaddyaknow? Problems went away. I guess the spec. puts the top limit at 10 MHz, so I was living dangerously.
Also, I highly recommend testing at low level with ChaN’s “Low level disk I/O module function checker” (http://elm-chan.org/fsw/ff/res/app4.c). I’ve attached my messy, hacked-up version.app4 - IO module function checker.c (11.9 KB)