There are probably two issues here.
First, we currently always generate certain global support classes, since we do not yet have a way to check if they have already been generated. This means that if you have more than one model for which you are generating code in a single project, these type definitions will be duplicated in both and conflict with each other. The errors with 'Tuple' and 'IPropertyChangeEventArgs' are examples of this.
As to the second issue, I am not sure where some of the other classes are being duplicated. Did you possibly rename the model file at some point, and still have the generated code with the old file name present alongside the generated code with the new file name?