Тебе нужно сделать это ...
Type unknown = ((ObjectHandle)tmp).Unwrap().GetType();
Кстати, это немного сбивает с толку, потому что если вы вызываете Activator.CreateInstance для типа в вашей текущей сборке ...
Activator.CreateInstance(typeof(Foo))
... объект не упакован и оригинальный код работает нормально.