Ok. We have sorted it out but thought I'd bring the answer back here so others can learn. And it's a weird one.
We spotted a 404 error on a favicon. Not a big deal as this shouldn't cause any problems and after all, it works local and on deployment slot. Well it looks like this simple 404 get's returned a 403 and that causes our problem.
We removed the following from the _layout.cshtml and pushed to the production server (just this one file) and everything is working again. It no longer gets the 404 and the 403 disappears. Insert the line back in and the production server craps out again.
"< link rel="apple-touch-icon" sizes="144x144" href ="../../images/lock-144">"
So two things we don't understand-
1) Why would a favicon 404 cause a 403 to be reported?
2) Why does it behave differently on production slot vs everything else?