Ну, я не могу дать исчерпывающий ответ, но прежде всего вам нужно понять, что ссылка на компиляцию - это не то же самое, что возможность разрешить сборку во время выполнения приложения. Поэтому, если эта ошибка возникла во время выполнения приложения, я могу представить, что она вызывает исключения загрузчика типов.
Во-вторых, вы, вероятно, получаете сообщение «Не удается найти #### в сборке. Вы пропустили какую-то ссылку», потому что базовые типы классов, от которых вы зависите, находятся в сборках, на которые ссылается System.Windows.Media.
Вы можете попытаться решить эту проблему путем добавления ссылок на сборки, которые загружаются во время Assembly.ReflectionOnlyLoad сборок, на которые вы хотите сослаться.
Если вы добавите обработчик события для AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve, вы можете добавить код, обеспечивающий загрузку этих сборок, а затем просто добавить ссылки на CodeCompileUnit.
Я столкнулся с одной проблемой, связанной с этим, и заключалась в том, что некоторые ссылки были оптимизированы во время компиляции, поэтому я реализовал неприятный хак, который просто добавляет класс контейнера в CodeCompileUnit, который инициализирует первый конструируемый тип, найденный в каждом из сборки.
Надеюсь, это немного поможет.