After a bit of work I have got to the state where the Barclay gateway will allow me to register a payment. The problem boiled down to a quote mark (') in the address field. This was then messing up the input fields supplied to Barclays and hence the hash verification.
Looking at the code, against that for the PayPal gateway, I suspect the answer is to esc_attr the input field $key and $value pairs. I suspect this is also worth doing from a security point of view.