One simple way to get what you're looking for would be to override the toString() method of your component class and have it return JSON or XML (whatever you like). To complement the toString() method, you would probably need a static method in your component class to deserialize the json/xml representation back into an object.
Apparently, these types of objects
aren't meant to be serialized, and I
haven't had much
serializing/deserializing using the
flash byteArray
A ByteArray would probably not be the best fit for a UIComponent, save for bitmaps, loaded SWF files and such (altho I have seen ByteArrays used for such things before).
If you need to reliably serialize your components, you're probably better off writing your own serialization/deserialization methods. The most appropriate way to do this would be by creating a base component (one that inherits from UIComponent) that offers these serialization methods and have each inheriting class override it with its additional properties. Finally, each extending class should call the super() method to get the serialized properties of the base class.
Sounds complex, but this is fairly simple and fairly common (In Cocoa, for example).