Improved TryConvert: return real object if it matches target type