O WCF é sim o cara que vai te salvar. Ele atende perfeitamente o cenário que você citou onde você tem um servidor global de serviços que os disponibiliza para todas as plantas. Isso é conhecido também como ESB (Enterprise Service BUS) ou simplesmente como barramento de serviços.
O legal do WCF é que você pode trabalhar com endpoints. Já trabalhou com isso? Endpoints são compostos pelo "ABC do WCF" que são Address, Bindings e Contracts e isso define a forma com que o serviço será acessado (protocolo, host, porta, mensagens, encriptação, etc). Com isso você poderá expor um mesmo serviço em vários protocolos e por exemplo você deixará que uma aplicação java na planta 1 consuma um serviço usando http (mais lento) e uma aplicação .net na planta 2 utilize o mesmo serviço utilizando net.tcp como protocolo, trafegando dados binários que darão muito mais velocidade a sua aplicação.
Porém tem o ponto que vai te dar um trabalhinho que é chamar esses "serviços locais de emergência". Então você precisaria implementar uma factory que identificasse se o server global está "em pé" e caso não esteja chamar o serviço em outro lugar. Você vai precisar de um roteador de serviços.
Um artigo muito bom sobre o assunto foi publicado na MSDN Magazine de Jul/08. Confira em http://msdn.microsoft.com/en-us/magazine/cc546553.aspx . Se você preferir o artigo em portugues é só selecionar a lingua na própria página.
Qualquer dúvida, é só perguntar.
Abraços
André Dias