Inconsistent Blueprint Field Value During Validate Compiled Widget Tree

I found the Validate Compiled Widget Tree method on user widgets & was hoping to use it to validate properties of a certain struct type on implementations of this widget type. My problem isn’t with the relatively arbitrary “validation” that I’m checking against each struct property, but with the fact that the struct values during this validate compiled widget tree method don’t match the assigned values in the UMG instance’s class defaults.

I’m not sure if this has to do with where this virtual method is called in widget compilation, but from what I understand, at this point in the widget compile process these properties should have been checked for changes to their defaults & the CDO this method is called on should reflect the blueprint object being compiled.

I included my implementation of Validate Compiled Widget Tree in case that might help contextualize my problem:

void UFooUserWidget::ValidateCompiledWidgetTree(const UWidgetTree& BlueprintWidgetTree, class IWidgetCompilerLog& CompileLog) const
{
	Super::ValidateCompiledWidgetTree(BlueprintWidgetTree, CompileLog);

	for (TFieldIterator<UStructProperty> StructProp(GetClass()); StructProp; ++StructProp)
	{
        // The struct we are validating is only implemented natively
		if (StructProp->IsNative())
		{
			const UScriptStruct* ScriptStruct = StructProp->Struct;
			if (UProperty* PathProp = ScriptStruct->FindPropertyByName(FName(TEXT("Path"))))
			{
				const FFooWidgetPath* PathStruct = StructProp->ContainerPtrToValuePtr<FPhoWidgetPath>(this);
				if (PathStruct && !IsWidgetPathValid(BlueprintWidgetTree, *PathStruct))
				{
					FText LogText = FText::Format(FTextFormat::FromString(TEXT("Invalid widget path {0}")), FText::FromString(*StructProp->GetNameCPP()));
					CompileLog.Warning(LogText);
					if (PathStruct->CompileType == EPhoWidgetPathCompileType::WarningOnInvalid)
					{
						CompileLog.Warning(LogText);
					}
					else if (PathStruct->CompileType == EPhoWidgetPathCompileType::ErrorOnInvalid)
					{
						CompileLog.Error(LogText);
					}
				}
			}
		}
	}
}