It seems to me that the choice you have with Catalyst for Custom Component is either :
What would be the best way to go ?
Catalyst does not currently support any code that has been modified in Builder. This means that you can't create a SkinnableComponent subclass in Builder, then skin it in Catalyst. The easiest thing to do, if you're going that route, is to create a custom component in Catalyst (subclass of Group), and just modify it in Builder to be a skin (change the root tag, set the host component, and assign the parts).