Хорошо, я думаю, у нас наконец достаточно информации, чтобы ответить на этот вопрос.
Проблема в том, что вы создали локальную копию того интерфейса, который использует ваш отраженный класс.
Это просто не сработает, Jitter знает достаточно об обоих интерфейсах, чтобы знать, что они не совпадают, он возвращает ноль.
Интерфейсы - это контракты между двумя организациями. То, что вы действительно пытаетесь сделать, это обманывать .Net, думая, что у него такой же контракт, короче говоря, он не будет обманут
Так как нет смысла отражать интерфейс от сборки (так как вы не можете использовать его во время разработки). Единственная доступная опция - сделать этот интерфейс общим для двух сборок. Вот как работают системы плагинов. Они достаточно знают друг о друге, чтобы общаться через интерфейсы.