Uma opção para Dlls é não utilizar o mdi e sim criar um form tipo cabeçalho estreito na parte superior da tela com botões e menus do sistema.
Outra opção é utilizar arrays com base num form e inserir controles em runtime, crie cods normalmente para controles que serão criado depois.
Tambem é possível criar varios exes uma para cada tipo de atividade do projeto com um exe principal instanciando os demais, exes necessários.
Existe também a possibilidade de um form com vários frames sendo cada frame inerente a uma funçao assim vc tera que controlar que frame estará visível de acordo com solicitação do usuário.