We have fixed this with a couple of changes, seems Cartthrob has a couple of issues...
1) Based on this post XID POST from third party we added the we added 'csrf_exempt' => 1 into the database for the payment_return_action in the Cartthrob exp_actions table. We do not know if this helped, but seems like we should do it. Carttrhob does not add this in when installed or updated.
2) Next issue the callback URL to enter into Worldpay was not working, http:// or , so we managed to find out this URl should be http://ourdomain.co.uk/themes/third_party/cartthrob/lib/extload.php/worldpay_redirect, so we entered that into Worldpay and that works, almost....
3) The callback page showed an error along the lines of "Cartthrob detected an incorrect system folder path, update the system folder path in Extload: extload.php". Or something along those lines. It seems Carttrhob assumes our system folder will be called system. For security we renamed it. Why on earth Carttrhob does not use the setting in EE index.php, and there is no instruction about this, so we updated our system folder path in third_party/cartthrob/lib/extload.php and now it all works OK.
So I guess 3 issues needed to be fixed to get Carttrhob Worldpay to accept payments.