The latest on this is that I've made more progress (but still not quite there).
I overcame the debug issue by switching off the compiler optimisation - something I should have thought about initially.
I then spent a huge amount of effort trying to understand why my SD Card was not responding to the activation sequence. After a good deal of probing I discovered a problem with the SD Card breakout board I was using. There was an issue with the connectivity of the MISO board - nothing wrong with my wiring - I only discovered when I actually put a probe almost directly onto the card to see that it was actually responding.
So, the current status is that the board completes most of the initialisation sequence. MDD_SDSPI_MediaInitialize progresses all the way to the instruction to the very last card call =>
for (timeout=0xFF; timeout > 0 && MDD_SDSPI_SectorRead(0x0, NULL) != TRUE; timeout--)
This call appears to timeout with MDD_SDSPI_SectorRead only ever returning FALSE.
The status is set to FALSE in MDD_SDSPI_SectorRead because =>
data_token != DATA_START_TOKEN
So close but not quite there.