I've just realised I'm being completely thick!
I'm in the process of adding some smarts to allow the ST4 port to be used for an "Advanced" hand controller (basically it will be a bit banged SPI to some smarts somewhere), as well as the "Basic" hand controller (a push button to GND on each ST4 pin). The 6th unused pin on the ST-4 port with the help of a resistor is used to determine which if any hand controller is connected.
The reason I am having no problems is because I've been testing with the V4.6 hardware board I have in front of me. This already contains the necessary resistor to make the detection process work. I realise now that those of you using an older hardware variant, or one of the Mega variants will not have that resistor installed which is confusing the firmware into thinking you have plugged in a hand controller and so it disables the serial port and thus doesn't respond to the config utility! I've confirmed the issue with an Arduino Mega board I have lying around.
Until I have finalised the advanced hand controller interface and had a chance to explain where to add the new resistor, I have commented out the section of code which detects the advanced hand controller. It is still possible to use the basic hand controller as that doesn't require the resistor to function.
When everything is finalised I think I will end up having two firmware versions, one with the advanced interface for those with the necessary resistor, and one without for those who do not wish to solder on a resistor.
Those who were having the issue with the read failing, please download the latest version attached to the first post in this thread. The problem is now corrected.
I must build up an old version controller to test with as well as the new one in future.