Я нашел ответ на свой вопрос. Он работает с любой коллекцией, например таблицами / встроенными фигурами, даже с моими пользовательскими коллекциями.
Selection.Range.FormattedText = ActiveDocument.InlineShapes(1).Range.FormattedText
Вместо выделения его можно использовать с абзацами, например
Parahraphs(1).Range.FormattedText = ActiveDocument.Tables(1).Range.FormattedText
. Делает объекты изколлекция должна появиться в нужном месте (как копии, не удаляет оригинальные). Этот метод намного быстрее, чем копировать и вставлять. Мой сценарий теперь примерно в 4 раза быстрее (~ 62 с -> 17 с примерно с 60 таблицами и 60 встроенными фигурами), и я не получаю случайные ошибки буфера обмена, когда использую слишком много таблиц / диаграмм.