There are times when you want to display parts of an entity to the user, pariticularily a specific list of fields that are attached (bundled) to that entity. Core doesn't offer functionality for this so I'll show you a simple function for extracting the form array structure for a selectable list of fields of an entity.
During development of the pgbar module I often ran into Notices for something in
$items. This time I said to myself: Let's get this straight once and for all. So I've inserted some debug code into my module to track which field related hook can manipulate data and in which order they are called. You can see the result in the dot-graph at the bottom.
There are many reasons why a feature containing the definition of a content type with some fields added will forget about the fields when you install the feature. Maybe just changing the name of the feature might save you time investigating other reasons.