Its true you need to backup your web.config and restore customizations after an upgrade.
You can reduce the effort by putting any customizations from the appSettings section in a user.config file. In the source code at the root of the web is a user.config.sample file that you can open and save as user.config then put your appSettings customizations there and you won't have to worry about losing those settings.
Of couse other sections like the system.net section you still have to re-apply your customizations.
Be aware however, when you make a change in user.config the system won't detect it automatically so you have to touch the Web.confiig file by opening it type a space and save. This will make it reload all settings including your user.config.
To troubleshoot I would use a Cpontact Form module and tweak your settings until it works. First thing I would try is set SMTPUseSsl to false. I know yahoo says to use sssl but in my trials it didn't work with this set to true, so gmail may be the same.
The system.net section smtp settings are only used by built in .NET controls like PasswordRecovery. All the custom features use the appSettings section settings.
Hope it helps,