I resolved the issue I was having. It turns out that the service that runs on the remote server doesn't need to know much about the object that will be instantiated on itself. Just the type and name that the object will be created as.
After instantiating and registering the Channel. You setup the listener and you are through with the server.
What I learned was that the remote class can be as complicated as you like. In my case I wanted to alert the user when an event occured on another server. So the remote server class runs on the user's machine and listens. The remote client runs on the machine on which important events will occur. When the event happens, the remote client is started up which instantiates the remote object on the user's machine. That object can open a windows form to alert the user, sound alarms or launch another appllication all of which depend on the access rights of the object and the user it runs as.
That's where I'm stuck now, figuring out how to navigate the complex security restrictions in a corporate environment. But this will be the subject of another post.