Most well behaved software will maintain the customizations made,and you will not have to reapply your preferences and settings.
Having said that their are cases when a package introduces changes that are not fully backwards compatible and so may break something that is working, Or interact with other programs and cause similar problems. For this reason you may not want to have software autoupdate. You may instead want to apply the changes manually in a sandbox environment (a second SD Card for example) or wait to apply them to see if others in the community experience problems. However, if you do want to autoupdate the installed packages you can create a cron job to update the repository listing and installed packages (this method includes email and download only options as well).
There are some best practices you can apply to maintain your configuration. For system wide configs (normally contained within the /etc directory you can install etckeeper(note that these instructions are a little out of date and that installing etckeeper will default to using git and do an initial import for you). this program will keep all of the changes made to files in the /etc directory in source control allowing you to roll back changes if needed.
For personal configuration settings which are normally stored in your home directory as .file ("dot files" i.e. .bashrc), you can place them under version control as well.