Here all code:
http://pastebin.com/WUeFkTS4
This is struct property case.
if (UStructProperty* Prop = Cast<UStructProperty>(Property))
{
void* ptr = Prop->ContainerPtrToValuePtr<void>(ValuePtr);
return _IterateStruct(ptr, Prop->Struct);
}