You need to do this…
Type unknown = ((ObjectHandle)tmp).Unwrap().GetType();
By the way, this is a little confusing because if you call Activator.CreateInstance on a type in your current assembly…
Activator.CreateInstance(typeof(Foo))
…the object is not wrapped and the original code works fine.