OK, after spending way too much time trying to workout what was wrong in my CAS config I have found the cause (but not the solution yet).
We have a practice of deploying all web applications on IIS, I therefore have IIS sitting in front of CAS using the tomcat ISAPI redirector to pass the requests to tomcat.
The 401 error I was seeing is the standard IIS 401 page, checking the IIS logs this has a substatus of 5 which means the 401 has come from tomcat.
As a simple test I re-enable port 8080 on Tomcat and tested directly to tomcat and the failed logins work as expected with an 'Invalid credentials' message displayed on the login page.
I am guessing that IIS is blocking CAS from handling the 401 error in some way which I have yet to figure out...