Мне кажется, я столкнулся с подобной проблемой. Моя установка была похожей - чистое приложение MFC с чистой MFC DLL, которое, в свою очередь, взаимодействовало с C ++ / CLI DLL. Все будет работать нормально, но при выходе из него произойдет сбой. Проблема усугублялась при тестировании чистой MFC DLL с использованием CppUnit.
При отладке я обнаружил, что из-за ошибки мой код C ++ выдавал исключительные ситуации при нарушениях прав доступа (объекты, на которые ссылается свисающий указатель) при выходе. Теперь среда выполнения C ++ игнорирует эти нарушения при выходе, а CLR - нет. Среда выполнения CLR создает необработанное исключение, в результате чего создается впечатление, что программа / модульный тест завершился сбоем.
Возможно, ваша проблема в другом, но она звучит очень похоже на ту, что была у меня.