еще странная вещь:
если наш объект не маршалить перед сериализацией, то все проходит нормально (сериализация, передача, десериализация и маршалинг после десереализации).
если объект маршалить, а потом отключить (RemotingServices.Disconnect), то баг все равно остается...
Т.е. по ходу в что-то в MarshalByRefObj запоминается, когда делаешь Marshal... и это что-то надо найти и давить... (возвращать к значению, которое было до сериализации)...