Updating (child) actor components at runtime, or alternatives?

You probably don’t want to attach a child actor to another actor, as the child actor is still “owned” by the original child actor component; it can get your code messy real quick. (You cannot detach a component from an actor, just an actor from another actor.)

You should probably use an entirely separate actor (perhaps via SpawnActor) that you attach via AttactToActor (ie abandoning the child actor component method), or fake it by killing/spawning an separate instance of the child actor in the other blueprint on pickup/drop.