Hi Steve,
You seem to have a grip on it for the most part. Instead of creating the geometry before creating the ComponentDefinition, you should create the Definition and then add entities to its Entities collection.
You can use ComponentDefinition#save_as to save it out to disk.
new_def = Sketchup.active_model.definitions.add("My Component")
new_def.entities.add_face(...)
new_def.save_as("C;/My Component.skp")
model.entities.add_instance(new_def, [0,0,0])