I'm assuming you are describing what Chirp calls bank memory where channels are assigned to banks. I've not implemented banked memory so someone else can probably offer more specifc advice. From what I can see it looks like you need to do a few things:
Tell the UI that you will have memory banks by setting radio feature: rf.has_bank = True.
If your radio has named banks set: rf.has_bank_names = True
From here you will need to implement a BankModel class, there are a couple to choose from depending on whether your memory is staticly assigned to a bank (StaticBankModel), present in 0 or more banks (BankModel), or members of multiple banks (MTOBankModel). Unless you have a StaticBankModel you will need to implement the BankModel (MappingModel) functon prototypes.
You will also need to implement a Bank class, if your Banks have names the NamedBank class is what you want.
The class references can be found in chirp_common:
This driver was helpful to me as a reference for implementation:
-ascendr