How should I upgrade a customized theme? I have made some custom changes to my theme files template, CSS and tpl files. Is there a best practice method of updating the theme besides going line by line and re-inserting my custom changes after uploading the new theme?
Is there a better way to approach this in the future?
You asked "Is there a better way to approach this in the future?".

An alternative to modifying the theme you're basing things on (which I favour) is subthemeing, with which you extend the existing theme by overriding only the aspects you wish to change. This allows you to upgrade the original theme and retain your code separately.


http://drupal.org/node/441088 Quick and Dirty Subthemeing
http://drupal.org/node/225125 Subtheme structure and inheritance


This approach isn't entirely a free pass against maintenance, though.


If a fix is applied to the core theme and you've copied the (previously broken) code to your subtheme, then you'll retain the broken code as an override.
If a change is made to the base theme which your subtheme doesn't account for, you'll need to handle that.


So - you will still need to review updates to the core theme, but this approach (for me) makes the most sense, means I'm maintaining the smallest amount of code, and provides a fairly straightforward way to build on the existing themes Drupal offers.