Micro SD cards work fine in Windows, not with Arduino?

Since you can't read these cards neither on a DUE nor on a UNO, I would try and change parameters in SPI_CSR.

See page 703 of Sam3x datasheet, SPI_CSR register is a Read/Write register. First, Read SPI_CSR after initialization of the SD card device:

uint32_t __SPICSR = SPI0->SPI_CSR[0];

Then, once you know what default parameters you have, modify them one at a time and see the result.
An example of a parameters selection:

// Data transfer parameters
SPI0->SPI_CSR[0] = SPI_CSR_CPOL          // Inactive state value of SPCK is logic level one
                   | SPI_CSR_NCPHA       // Data is captured on the leading edge of SPCK and changed on the following edge
                   | SPI_CSR_CSNAAT       // Chip select active after transfer
                   | SPI_CSR_BITS_12_BIT // Bits per transfer
                   | SPI_CSR_SCBR(100)   // slowest bit rate
                   | SPI_CSR_DLYBS(100); // Maximum delay from NPCS falling edge (activation)
// to the first valid SPCK transition