Вы вообще не создаете экземпляр типа из DLL. Вместо:
var tmp = Activator.CreateInstance(typeof(UserControl)) as UserControl;
запись:
var tmp = Activator.CreateInstance(t) as UserControl;
Кроме того, я бы порекомендовал вам на самом деле написать
var tmp = (UserControl) Activator.CreateInstance(t);
вместо этого. В противном случае, если у вас есть ошибка, позже вы получите исключение null-reference, которое не очень информативно и сложно отладить. Таким образом, вы получите более значимое исключение приведения типов в нужном месте, где на самом деле происходит ошибка.