To finish this off in case someone else is stuck here:
In target class:
UFUNCTION(BlueprintCallable)
UTexture2D* GetIcon() const { return ResourceData.Icon; }
in calling class:
#include "class.h"
// BP GetClassDefaults = GetDefaultObject<class>>()->
UTexture2D* localIcon = Resource->GetDefaultObject<class>()->GetIcon();
ResourceIcon->SetBrushFromTexture(localIcon, true);
I know the localIcon variable is not required but for testing I wanted it broken apart for clarity.