FScriptArrayHelper behaviour is different if property is not VisibleAnywhere

Strange fact, with an array property that contain 2 items, the code below always has vCount = 0 when the property is declared with UPROPERTY(BlueprintReadWrite) and vCount = 2 with UPROPERTY(VisibleAnywhere, BlueprintReadWrite).

Any idea?

if (const FArrayProperty* vArrayProperty = CastField<const FArrayProperty>(aProperty))
{
	auto vArrayName = vArrayProperty->GetAuthoredName();
	FScriptArrayHelper vArrayHelper(vArrayProperty, aContainerPtr);
	auto vCount = vArrayHelper.Num();
}