You can host all of your objects on the same channel. Dont open a channel per remote object.
Here is a neat little trick that I like to do: when my service host loads up, and runs through its list of remote objects that it must host, I register the remote object using a register method on a web service. I pass in the remote object name, and other key information like the remote hosts connection info.
Then on the client side, when my client starts up, and it needs to get a proxy to the remote object, I send a request to the same web service, and pass in the type of remote object that I am looking for, which returns the connection specific information to the remote host. The client then uses the information from the service to create the proxy.
The web service communicates with a set of SQL Server tables that knows what has been registered. When the remote host is being turned off, all I do is simply call the unregister method on the web service, and now all of the remote objects are no longer available via the web service.
This is also one way that you could "roll your own load balancing"
Hope this helps.