Phil,
First there is one thing to clarify; when you copy objects in the UI editor CVI automatically changes the constant name, but keeps the same callback name. You can't have repeated constant names, but you can have multiple controls with the same callback. The method that you are currently using is fine, however you can get into trouble when increasing the number of custom controls.
One possible way of doing this more eficiently is to generate the child panels with the controls programmatically. You can even use the same method that we used for the tab control: have the user place a picture control where he wants the custom control, then provide a function to convert a picture control into your custom control. I'm attaching a small example on how to d
o that, I'm just using the callback defined for the picture control, but you can add parameters to the ConvertPicToChild() to send pointers to your callbacks or send an array to get the controls constants or the panel handles. 
I hope this helps, let me know if you have further questions.
Regards,
Juan Carlos
N.I.