Think I maybe making progress...
...on my machine calls the header for \Arduino\libraries\TFT\src\TFT.cpp
...which calls the header for \Arduino\libraries\TFT\src\utility\Adafruit_ST7735.cpp
This link discusses the SPI on Duehttp://arduino.cc/en/Reference/DueExtendedSPI
...and explains that the SPI library can look after chip select (probably why my attempt at manual chip select failed) and once assigned the general IO calls on the pin will not work. It says when using the SPI library directly you call SPI.begin(chip_select_pin_number) and it will deal with it. The Adafruit library only has a call to SPI.begin() without specifying a pin.
I've added two SPI.begin(cs_pin) calls, one for the TFT chip select pin and the other for the SD before I initialise the TFT and SD in the setup part of my scetch and it seems to be behaving better, although not faultlessly yet...