Я думаю, что вы знаете ответ, 38 МБ - это СЛИШКОМ большой путь для удаленного вызова. Дальнейшая диагностика поможет показать полный пример, упростив вашу задачу до двух локально работающих функций.
Это поможет определить, является ли это размер набора данных или ограничение размера в конфигурации удаленного интерфейса / сети.
Кроме того, наличие рабочего образца позволило бы кому-то другому повторить проблему и увидеть информацию о типе (например, мы не можем видеть, какой тип объекта вызывает исключение, и не можем искать какие-либо ограничения в MSDN). Я уверен, что с этим кто-то сможет дать окончательный ответ.
Само по себе приведение кода к образцу, вероятно, позволит вам найти причину.
Ryan