This is actually a WP issue
The issue was with the attribute slug, WP automatically places a – between words in your attribute name, however for some reason WP screen options fail to work. Changing it from a – to _ sorted it out.
This issue appears to only affect attributes with a lot of terms, I have attributes with 35/50 terms and I can set the show on screen value to any number as normal.
The attributes I’m having difficulty with have 150+ terms