Hola.
Si lo que necesitas es utilizar varios canales para un chat, nada más sencillo:
Utiliza una Hashtable para almacenar los canales. De esta forma, cuando alguien seleccione un canal, miras si ya existe una key igual a ese nombre. Si no existe, la creas.
Dentro de una Hashtable puede haber cualquier tipo de objetos, en tu caso, almacena las conexiones (ya sea un socket o una clase propia) dentro. Otra opción es que hagas una clase Chat en general y que en ella guardes todo lo referente a cada chat. Entonces, cuando alguien cree un canal, creas tu clase en un thread aparte y la guardas dentro de la Hashtable. Esto hace bastante simple que construyas muchos chats a partir de uno que ya tengas, pero complica un poco la lógica de entrada a cada chat.
Espero haberte servido de ayuda.
Un saludo.
Silverfox