Replace Static Mesh Component with Derived Class

I have searched low and high and cannot seem to find a clean way to programmatically replace static mesh components in a BP with some derived class, MyStaticMesh. I have tried to spawn an instance of the BP, find static mesh components, spawn my class, copy the mesh and destroy the original. This works but seems to sometimes miss the last mesh in the hierarchy. Also, the name cannot be changed for this new component which is an annoyance.

TLDR: How can I bulk replace static mesh components with a derived class MyStaticMeshComponent?