Let me chip in here.
I think you’re working with template weapon from unreal here.
What I would do is:
Spawn FP_Weapon in the world and detach your current weapon component and destroy it. Right now you’re just detaching the component, but the weapon pickup is an actor (which in turns has or creates a component when picked up). Visually it seems to be the same but the component is just that, a component (skeletal mesh + firing functionality if memory serves), whereas your pickup weapon is an entire actor.
So next time you want to pickup what you have just dropped, you can’t because component doesn’t have the same functionality as original weapon actor.
I might not be doing the best in explaining this right now but I can give actual example if you like, that might help you understand it.
try to avoid using get actor(s) of class, because it will not work if you have more then one weapon of this type in the world. You should be getting a reference to that particular one, via overlap, line trace, interface.
Reply with any questions you might have, I will try and do my best to answer them.