Managed to unravel this in the end. It seems that the port 2.2 can be left as a GPIO pin when used as a wake from stop. The reason for everything going haywire after waking was the CySysPmStop() call contains a locking of the GPIOs. So the system resets and fires up and cant initialize any of the ports as they are locked, so they are as I left them before Stop, which is Hi-Z.
So a CySysPmUnfreezeIo() needs be present in MAIN at the start of code.