Themes never work without some tweaking, and it is tedious re-applying changes to functions.php whenever you change theme. This Functionality plugin lets you create a portable functions.php that works whenever you change theme.
Install it, then cut all the code out of your theme function.php that is not theme related. Paste it into the plugin created by Functionality. Use the plugin editor instead of the theme editor whenever you need to update your functions.
Simple and effective. Much better than plugins that give you an admin form to manage custom functions.
Update: 1 Year and 5 months later, I'm still using it every day, and it has worked consistently through all WordPress updates.