How to go about replicating variables inside UObject's BP child class?

Hello! Thank you very much for your reply, yes i do indeed have a AWeaponActor class that replicates the UWeaponObject

WeaponActor.h

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "WeaponActor.generated.h"

UCLASS()
class SHOOTER_PROJECT_API AWeaponActor : public AActor
{
	GENERATED_BODY()
	
public:

	AWeaponActor();

	virtual bool ReplicateSubobjects(class UActorChannel* Channel, class FOutBunch* Bunch, FReplicationFlags* RepFlags) override;

	void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;

	virtual void BeginPlay();

	void Tick(float DeltaTime);

	UPROPERTY(Replicated, BlueprintReadWrite, EditAnywhere, Category = "Default", meta = (ExposeOnSpawn = "true"))
		class UWeaponObject* WeaponObject;
};

WeaponActor.cpp

#include "WeaponActor.h"
#include "Net/UnrealNetwork.h"
#include "Engine/World.h"
#include "Engine/ActorChannel.h"
#include "C:/MY STUFF/UE PROJECTOS/Shooter_Project/Source/Shooter_Project/WeaponObject.h"

AWeaponActor::AWeaponActor()
{
	//set replicates
	bReplicates = true;
	//replication radius
	NetCullDistanceSquared = 99999;
	//replication frequency 
	NetUpdateFrequency = 1.f;
	//tick enabled
	PrimaryActorTick.bCanEverTick = true;
}

bool AWeaponActor::ReplicateSubobjects(UActorChannel* Channel, FOutBunch* Bunch, FReplicationFlags* RepFlags)
{
	bool WroteSomething = Super::ReplicateSubobjects(Channel, Bunch, RepFlags);

	// replicate the object
	if (WeaponObject) WroteSomething |= Channel->ReplicateSubobject(WeaponObject, *Bunch, *RepFlags);

	return WroteSomething;
}

void AWeaponActor::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
	Super::GetLifetimeReplicatedProps(OutLifetimeProps);

	//mark the reference to be replicated
	DOREPLIFETIME(AWeaponActor, WeaponObject);
}

// Called when the game starts or when spawned
void AWeaponActor::BeginPlay()
{
	Super::BeginPlay();
	
}

// Called every frame
void AWeaponActor::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

}

what im trying to do is mark the variables created in a blueprint child class for replication since i read that they are not marked for replication by default.
bpclass

And yes i have set all of them to replicate in the bp class, but they dont seem to get updated on client side when set on the server, is it possible to mark these variables created in the BP class for replication, or do i have to create them in the c++ class and do it there?

I really want to refrain from using structs in this case because im trying to learn more about UObjects and how to use them.