Destroy Component not working

At first, you just spawned a weapon (actor) and attached it to your player (I guess) at a specific socket, right?

If so, you could store weapon actor in a variable, and when you wish to change, you call DestroyActor on this variable, spawn new weapon, attach it, and update variable.

You shouldn’t have to use / delete WeaponSlot if I understood right