C++ and Blueprint derived classes behaving unpredictably

So to simplify what I’m trying to set up, I have a base class that derives from StaticMeshComponent, which is meant to be added to an enemy class as a big, glowing weakpoint. WeakpointBase sets up a collider in its constructor, and uses AddDynamic to call an event on overlap of this collider. This all works great when the pure C++ class is added to an actor as a component.

However, when I attempt to create a C++ class or Blueprint deriving from WeakpointBase, a number of things break.

1, is that the collider attached to the Weakpoint no longer moved with the Weakpoint.
2, is that the Overlap method is no longer called, neither is BeginPlay at all.
However - the collision preset that I set up in the constructor is set in the editor, so the constructor is clearly being called.

In another situation I’ve set up a basic gun and created a derived class, then a blueprint from that derived class. This derived class is otherwise completely empty and so is the blueprint, and yet they work as expected.

I could really do with some help here, Google isn’t pointing me in any right directions. I will show code upon request.

Bump