Causa del problema: non ho preso in considerazione un dettaglio importante, il permesso b_client_skip_channelgroup_permissions ignora tutti i permessi dei gruppi canali e, a discapito del nome, anche i permessi dei canali stessi.
Soluzione: toglilo ai vari gruppi staff e imposta (nei vari gruppi server staff che hai) il valore "Skip" a true (metti la spunta) ad ogni singolo permesso che non dev'essere sovrascritto ("battuto") dallo stesso permesso che hanno nei gruppi canale. Quindi ai permessi di kick, ban, move, ecc. (non i needed kick/ban/move)