Attaching blueprint components to actor while preserving a reference to the original asset

I’m working on some sort of editor tool that automatically generates a blueprint actor with a set of components.

The amount of components and their content is dynamically decided based on parameters set by the user.

So far so good, I can do all of this in c++. But I also want the user to be able to extend the functionality of these components with blueprints. So basically, I want to select an existing blueprint from the content browser and add it as a component to this new actor I’m creating (like you can usually do in the editor).

This is where I hit a wall, how can I add a component from the content browser to an actor and preserve the reference to the blueprint?

Right now I have something like this:

	FStringAssetReference MyAssetPath(pathPackage);
	MyComponent* BpComp = (MyComponent*)MyAssetPath.TryLoad();
    BpComp->SetupAttachment(parentComponent);

But this creates a reference to the c++ parent class of the blueprint component (MyComponent) and I lose all the information the user might have put in the blueprint.

Does anyone know how to solve this issue?

I also posted this question on reddit, for people facing the same problem in the future.