The way I update is to replace all files. No matter what method you use (there are plugins too like this – http://wordpress.org/plugins/easy-theme-and-plugin-upgrades/ to update easily), you will need to backup your changes and redo any changes you made to the files on the new installation.
Use tools like DiffMerge or WinMerge to compare the old and new files and redo the changes. You will spend probably an hour doing this but not more, specially if you have made changes only to a few select files. The settings data will stay and hence Custom CSS entered into theme options should be fine. It’s always a good idea to have a backup though. Hope this helps.
Best way to protect yourself from theme updates is to always make changes in the child theme. The theme is mostly child theme friendly and hence when you have time, you can probably go through the changes you have made to the core theme files and try to move them to child theme so that the core files are not affected and upgrades are smoother.