Ability activation tags empty on client

Hello, (UE5.7) using HandleGameplayEvent to activate an ability. Having a problem where the ability on client machines will have empty activation tags despite them being set in the constructor. Works reliably on server and I can see that the tag is available globally on the client. Anyone have any thoughts?

[/Script/GameplayAbilities.AbilitySystemGlobals]

ReplicateActivationOwnedTags=True

// STEPPED THROUGH THIS, ABILITYTAGS IS ALWAYS EMPTY ON CLIENT
for (FGameplayAbilitySpec AS : ASC->GetActivatableAbilities())
{
    for (FGameplayTag T : AS.Ability->AbilityTags)
    {
        UE_LOG(RTSRuntime, Warning, TEXT("%s"), *T.GetTagName().ToString());
    }
}
// Ability Constructor
UGameplayAbility_PurchaseUnit::UGameplayAbility_PurchaseUnit()
{
    NetExecutionPolicy = EGameplayAbilityNetExecutionPolicy::LocalPredicted;
    ReplicationPolicy = EGameplayAbilityReplicationPolicy::ReplicateYes;
    InstancingPolicy = EGameplayAbilityInstancingPolicy::InstancedPerExecution;
    NetSecurityPolicy = EGameplayAbilityNetSecurityPolicy::ClientOrServer;

    bWasCancelled = true;
    bReplicateEndAbility = true;
    
    // Grants tags to actor using this ability while this ability is active
    FGameplayTag RequestedAbilityTag = FGameplayTag::RequestGameplayTag(FName("GASCore.Event.PurchaseUnit"), true);

    if (RequestedAbilityTag.IsValid())
    {  
        FAbilityTriggerData TriggerData;
        TriggerData.TriggerTag = RequestedAbilityTag;
        TriggerData.TriggerSource = EGameplayAbilityTriggerSource::GameplayEvent;
        AbilityTriggers.Add(TriggerData);
    }
    else
    {
        UE_LOG(RTSRuntime, Warning, TEXT("Failed to add tag to ability trigger"));
    }
}
// Calling the ability
        FGameplayEventData EventData;
        EventData.Instigator = this;
        EventData.Target = this; //shouldnt need target
        EventData.TargetData = FGameplayAbilityTargetDataHandle(TargetDataPtr);
        EventData.OptionalObject = UnitData;

        // Fire the gameplay event to the Ability System Component to trigger abilities listening to this event tag
        FGameplayTag RequestedAbilityTag = FGameplayTag::RequestGameplayTag(FName("GASCore.Event.PurchaseUnit"), true);
        if (RequestedAbilityTag.IsValid())
        {
            if (ASC->HandleGameplayEvent(RequestedAbilityTag, &EventData))
            {
                UE_LOG(RTSRuntime, Display, TEXT("Successfully activated events from tag %s"), *RequestedAbilityTag.GetTagName().ToString());
            }
            else 
            {
                UE_LOG(RTSRuntime, Warning, TEXT("Was unable to activate any events from tag %s"), *RequestedAbilityTag.GetTagName().ToString());
            }
        }
        else
        {
            UE_LOG(RTSRuntime, Warning, TEXT("RequestedAbilityTag is NOT valid."));
        }
    }