Can you tell me what constitutes a format change?
Pretty much any structural change to the file. One thing to keep in mind though is that you do not need to use the Reset Columns button. In fact, I never do. For minor tweaks after the Connection is in place I use the Advanced Page to add or remove columns, or change a data type or width. I find it much simpler than pressing Reset but your experience may differ.
I have been working with SSIS, if you total all my time, about 1 to 1.5 years but I am just now having to do some higher automaton. I have looked at possibly creating a file format with bcp and using sql server to do these uploads but I don't really want to go that route. I would prefer to keep it in SSIS because there are other things in SSIS I want to use in my final outcome.
I too prefer SSIS. I still use bcp for quick and dirty exports and imports where SSIS is not an option, or for archiving data to a file before dropping what I think are unused staging or archive tables (e.g. SomeCoreTable_20120125, I run across those a lot) but for every day use I prefer SSIS.
For the record bcp is just as strict as SSIS when it comes to the incoming file format yet it is nowhere near as robust or flexible for what you are doing as SSIS so in my opinion it won't buy you much. I would create the set of SSIS packages needed to process the various file formats you have coming in and just deal with the fixups on the files themselves manually as you have been. Once you have an SSIS package for each flavor of file you receive you can start running the packages from the command line and passing in the locaiton of the file as a variable value, in case that helps you streamline the process from the command line to get closer to a bcp-like experience.
__________________________________________________________________________________________________There are no special teachers of virtue, because virtue is taught by the whole community. --Plato