PRISM и MEF призваны решать схожие (но не совсем одинаковые) задачи.
MEF направлен на реализацию плагинной архитектуры, в то время, как PRISM имеет поддержку
модульности и некоторые механизмы по их загрузке, взаимодействию и т.д. Чтобы ответить на вопрос, в каком случае что нужно использовать, самый легкий вариант - пойти от обратного: то есть имея некоторую задачу, проанализировать, какой из фрэймворков
больше под нее подходит (выделить набор требований, которым должна удовлетворять реализация - и проанализировать каждое решение на предмет их реализации).
Unity же - это DI контейнер, который может использоваться в совокупности с другими техническими решениям (с тем же PRISM), но не является фрэймворком для композитного приложения - то есть не
имеет встроенных механизмов по загрузке компонентов приложения, обеспечения их взаимодействия между собой, интерфейсов для обменивания сообщениями/командами и т.д.