Classes cannot have variance in C#, so you'll have to create an interface e.g.
public interface IObjectWrapper<out T> where T : IObject
{
T Value { get; }
}
Then you should be able to do
if(values[1] is IObjectWrapper<IObject>)
{
itemToAdd = ((IObjectWrapper<IObject>)values[1]).Value;
}
If you don't want to do that, you could use reflection:
Type t = values[1].GetType();
if(t.IsGenericType &&
t.GetGenericTypeDefinition() == typeof(DataWrapper<>) &&
typeof(IObject).IsAssignableFrom(t.GetGenericArguments()[0]))
{
itemToAdd = (IObject)t.GetProperty("Data").GetValue(value[0], null)
}