Alguns dos seus pontos de migração são bastante fáceis, outros não. Temo que, dependendo de quão "personalizadas" sejam as suas "DLLs de aplicativos da Web personalizados", você pode precisar de muita migração manual.
Metabase import / export é bastante simples. Você poderia analisar a Metabase (já que é apenas XML) e localizar quaisquer DLLs ISAPI referenciadas e migrá-las também. Da mesma forma, você deve ser capaz de analisar a Metabase para localizar qualquer arquivo de conteúdo que precise ser migrado e ROBOCOPY / XCOPY. (A migração de ACLs entre membros que não são do domínio é uma operação não trivial.)
Copiar contas de usuários e grupos entre servidores não-membros do domínio pode ser feito via script .
Mover bancos de dados do SQL Server é bem fácil. Solte / mova / Anexar ... espuma, enxague, repita. Se você tem um lote deles, você poderia escrever algum TSQL para ajudar a automatizar o processo.
Quando você entra em um software personalizado, todas as apostas estão desativadas. Se você sabe mesmo onde o software está armazenando seus dados de configuração, provavelmente você está escrevendo scripts únicos para migrar e alterar a configuração. Desconfie de coisas feias, como locais de banco de dados codificados, endereços IP, etc.
Avançando, esse tipo de coisa é uma boa razão para ter procedimentos de documentação / controle de alterações bastante rigorosos. Da próxima vez que você tiver que fazer isso, ficará feliz em ter esse tipo de documento.
Existe o outro argumento que diz "Você deveria estar executando tudo isso em máquinas virtuais". Você sempre pode tentar fazer um P2V da sua máquina "Servidor B", no entanto, você precisa estar ciente do sistema operacional em potencial e / ou preocupações de licenciamento de aplicativos que podem surgir.