I am not able to deep copy UserControls because they are not marked as serializable.
What is the reason behind this design?
Usercontrols are a visual element, and as such why would you ever want to serialize them? You are never going to send them across a WCF service, or stream them to a data repository. If you need to transmit or store usercontrols then you would store their key properties and recreate them where necessary.
Instead of using serialization to create a clone, go back to using a more traditional method like manually copying specific properties on known types, or use reflection.