Из того, что я понимаю, вы пытаетесь получить все сборки (из appdomain, на которые ссылается сборка записей и в файле конфигурации) в словаре, а затем передать его в MEF, чтобы он искал детали в этих сборках.
Вместо этого я поставил бы свой CompositionContainer с AggregateCatalog. Затем я создал бы DirectoryCatalogs и предоставил бы папку, в которой находятся указанные сборки (dll).
Это может быть папка bin проекта, которая уже должна содержать большинство dll, а также любые другие необходимые вам папки (те, где находятся сборки, указанные в настоящее время в вашем файле конфигурации).
Еще лучше, я бы создал каталог / plugin или / parts в папке bin. С событиями после сборки (в свойствах проекта) я бы скопировал все необходимые мне библиотеки для частей, которых еще нет в папке bin. Тогда я бы сделал что-то вроде этого:
var aggregateCatalog = new AggregateCatalog();
var mainDirectoryCatalog = new DirectoryCatalog(".");
var partsDirectoryCatalog = new DirectoryCatalog("./parts");
aggregateCatalog.Catalogs.Add(mainDirectoryCatalog);
aggregateCatalog.Catalogs.Add(partsDirectoryCatalog);
Если вы предоставите этот aggregateCatalog вашему CompositionContainer, все dll из обоих этих каталогов будут сканироваться на наличие деталей. Поскольку входная сборка и сборки, на которые она ссылается, уже находится в корзине, она получит их. Остальные сборки будут скопированы в каталог деталей.