Permissions not saving
This sounds a lot like a php runtime issue. PHP has a configuration called max_input_vars, which you can use to set a limit on the number of input vars php will accept. This will affect the number of $_POST and $_GET variables that can be fed into php. The default is 1000, and I suspect, if you have lots and lots of user type, you're hitting up against this ceiling.