Interestingly, I've had similar problems with the Table Generator. I had a table gen component reading all rows from a table, and I needed to change the table name. I did that in SQL, then went to the component and updated it by changing the table name and updating the table defenition. I did not change the SQL type at the end as I did not want to have to change the all the data types. Recompile and close, and no matter what I did, I could not get the component to recognize it had changed. I kept getting the error "Table not found".
Conversely, when I use a Stored Proc, I can change those multiple times and when I regenerate the component they all work perfecty. I've come to the conclusion that Stored Procs are the way to go. I've never had a single problem regenerating an SP, even when I add an input variable or another output field. When I reload the project, all the origianl components show the yellow "Warning" triangle if a new variable mapping is required, and all the output fields are always there.
I've even written my SP's to do insert or updates, so one component does the same as a "Write Data to Table" component does.
Rob