I don’t have much experience in this and wouldn’t be able to expand upon your question more than I’m about to do. You said this:
Instead of duplicating a Blueprint, have you looked into creating a child? Right click on the BP in the content browser and click “Create Blueprint based on this.” The resulting BP will have everything the original had, but the event graph, for example, is missing because it will always refer to its parent first. So if you have dozens of blueprints that are “based on” the original, any changes to core functionality of the original is passed on to each of them. I created a template blueprint that represents a placeable furniture asset, and each of its children all behave perfectly and uniquely with their own settings while keeping any graph changes made to the template.