Turns out to be something a little odd. I had been using non-standard SPI pins and, when testing something else, I used the default pins (18,19,23) and the touchscreen now worked.
I have raised a possible bug with the library's developer here: Touchscreen SPI seems hardcoded (ESP32) · Issue #1431 · Bodmer/TFT_eSPI · GitHub