Read variable value from UProperty of different types

You could do it like this:

if (UIntProperty* IntProperty = Cast<UIntProperty>(Property))
{
    int32 Value = IntProperty->GetSignedIntPropertyValue(Property->ContainerPtrToValuePtr<int32>(Obj));
    SetIntProperty(Property->GetName(), Value);
}