I have created a model in ModelBuilder which does the following;
uses the feature classes iterator (the feature classes have varrying numbe of fields)
uses the make feature layer tool
uses select by location tool
feature class to feature class tool (this writes the selected feature classes into a feature dataset)
For reason I do not understand not all the fields of a feature class are created in the last step.
I have also attached the model as a graphic