Eu já vi isso acontecer antes, onde um assembly gerenciado referenciado está presente na máquina anterior (como no GAC ou registrado em outro local), mas não está presente na nova máquina.
Se você puder identificar os conjuntos gerenciados ausentes, uma abordagem pode ser configurá-los para "copiar local" para que eles sejam "implantados em bin" na pasta bin da aplicação.
Você pode tentar executar o Monitor de processo da SysInternals para identificar o conjunto ausente.
Também houve algumas ocorrências em que os assemblies nativos estavam ausentes da pasta% systemroot% \ system32, como msvcr71.dll.