Retain head components when placing and breaking

Other than spawning an entity where the head is placed to store the data until the head is broken, or hardcoding every head that will have custom components, is there a better more portable way to store the extra data on placement and on breaking?

Continue to help post