Using an attached actor instance instead of the child actor component would solve this, it would have its own variables.
While a bit less elegant/efficient, you can still keep track of these variables with the child actor component method, just get & set them when picking up or dropping the weapon.
(ex: PICKUP: get actor variables → delete actor → set child actor class → set child actor variables;
DROP: get child actor variables → change child actor class → spawn actor → set actor variables)
Within a Blueprint Function you could track these as local variables to keep your main BP graph tidy, or just route the data directly via the BP nodes to avoid variables altogether.