Если вы используете двоичную сериализацию, клиент должен иметь доступ к DLL, которая содержит тип, который вы сериализуете в ArrayList. Я полагаю, я не знаю, как вы настроили систему, чтобы описать, как это должно быть сделано, но в этом суть.
Если вы используете что-то вроде сериализации xml (используя XmlSerializaer или DataContractSerializer), вы сможете создавать Xml. Вы можете дублировать объектный код как на стороне сервера, так и на стороне клиента, если действительно не можете поделиться сборкой.