I don't know if this will be any use to you but I've just read a similar sounding setup to yours that was suggested in 2011. https://moodle.org/mod/forum/discuss.php?d=166163
If I've got this right Mary Cooch was saying that instead of using cohorts at the category level you create your cohorts at the site level. The category and courses then use groups and the "auto create group" function will allow you to create a group from a given cohort as a dropdown option.
Please understand I haven't tried this, we don't use cohorts at all, so I may be entirely wrong or creating you a headache but is this maybe what you are looking for? I don't know how you would deal with a new student whether it would give your school level admins access to set a new student into their group and then this would become picked up by the cohort or it maybe that a new student would have to be added to the cohort and then filter down to the group. It would also mean that the school admins would have to be trusted to include the right cohort in their group, so maths wouldn't rather than couldn't add the psych cohort.
At least that's how I interpret what that discussion concluded.