Временные таблицы - это не только сами данные.
Не забывайте про метаданные и индексы, связанные с ними.
Кроме того, таблица может находится не только в памяти, но и на диске.
В общем, не думаю, что проблема именно в какой-то фрагментарности данных в памяти. В конце-концов, ведь все записи можно получить при выполнении селекта.
Проблема, именно в наличии индексов, которые необходимо воссоздать на противоположной стороне.
Во-первых, непонятна сама структура этих индексов, насколько они привязаны к текущему положению табицы в памяти и затем на диске. Т.е., можно ли их перенести на противоположную сторону без пересоздания.
Во-вторых, размеры этих индексов могут быть сопоставимы или больше, чем сами данные. Например, для DAX2009RU7, размер выделяемой памяти под InventTable (заполнял ItemId и ItemName, есть много добавленных полей) в два раза меньше, чем под InventDim (заполнял InventDimId и InventLocationId, некоторые поля отключены в конфигурации) при одном и том же количестве вставленных записей
Предваряя вопрос - почему не сереализуют сами данные без индексов и не передают только их с последующим восстановлением индексов, ответить не могу

.
Как мне видится, так ненавязчиво нам показывают, что надо создавать и обрабатывать данные на одной стороне

.
Хотя, мне на самом деле не понятно - зачем нужна передача с клиента на сервер таблицы целиком? Точнее, зачем изначально создавать таблицу на клиенте? Почему нельзя создать временную таблицу на сервере, а заполнять еще уже на клиенте?