Olá Leonardo,
Me parece que você tem um problema de arquitetura aí... Porque você separou a consulta de cadastro de clientes e a busca de títulos em dois programas (executáveis) diferentes?
Não sei qual o seu objetivo, mas se você queria modularizar sua aplicação, então deveria criar apenas UM executável, e separar os módulos em diferentes DLLs (Class Library), ou até mesmo em diferentes serviços WCF, mas tudo pertencendo ao mesmo projeto.
De qualquer forma, partindo do princípio que você pretende manter essa arquitetura com diferentes executáveis, terá de escolher uma alternativa para a comunicação entre esses processos, e existem várias opções, como Windows Messaging, você pode usar WCF, Named Pipes, Sockets TCP/IP, Remoting... Você escolhe. Veja abaixo alguns artigos com exemplos, que podem ajudá-lo na decisão:
Windows Communication Foundation
A closer look at Windows Communication Foundation
http://www.codeproject.com/KB/WCF/WCF_in_details.aspx
WCF (Windows Communication Foundation) Example
http://www.codeproject.com/KB/WCF/wcf_bohansen.aspx
Inter Process Communication Between Applications and Vista Gadgets Using WCF
http://blogs.msdn.com/karstenj/archive/2006/10/20/WPF_5F00_WCF_5F00_Vista_5F00_Gadgets_5F00_2.aspx
Windows Messaging
VB.NET, VB6 and C# Interprocess communication via Window Messaging
http://www.codeproject.com/KB/dotnet/VB6andVBNETWindowMessages.aspx
Named Pipes
Inter-Process Communication in .NET Using Named Pipes, Part 1
http://www.codeproject.com/KB/threads/dotnetnamedpipespart1.aspx
Inter-Process Communication in .NET Using Named Pipes, Part 2
http://www.codeproject.com/KB/threads/dotnetnamedpipespart2.aspx
Remoting
Simple Inter-Process Communication In VB.Net
http://anoriginalidea.wordpress.com/2007/08/09/simple-inter-process-communication-in-vbnet/
Improved .NET Remoting, Part 1: Same-Box Communication
http://www.developer.com/net/net/article.php/3520891
Abraços,
Caio Proiete
Caio Proiete
http://www.caioproiete.com