Multi-instance/Apartment threaded question

I am writing an out-of-process server that may take multiple requests from
many clients (hence, the need for multi-instance.  The COM servers functions
as a funnel for multiple requests out a single tcp/ip client socket.  The
request goes out to another server, is processed, and returns.  The COM
server then needs to put the results into the proper context object.  The
client app can then read the data via properties.

The biggest problem I am encountering is that I need to detect whenever a
client connects or disconnects from my server so that I can manage the
contexts within my server.  I probably could have made my life easier if I
used a single instanced/single threaded model except then I'd have dozens of
servers popping up all over the screen.

If somebody knows how I can:

a) Detect whenever a client connects/disconnects
b) Can have an invisible single instanced/single threaded server
c) knows a better way to do this...

I'm most certainly listening!!!!