There are so many little things in WordPress, its plugins, themes, etc. that need modifications to make them perfect. But when it comes time to upgrade them, this can cause things to revert back to the way they were originally, negating all of the positive changes. Below are some tips to mitigate these reversions when upgrades are done.
Use the INCLUDE command in a PHP file if the theme allows it: include 'WhatEverPathAndFileName';
For CSS, try to use the GUI (theme or otherwise) to override CSS settings, but if you can't;
Use an @IMPORT command in a CSS file (add the command at the bottom of the file to override other declarations in the file);
@import "WhatEverPathAndFileName"; OR @import "WhatEverURL";
To locate difference in files, use WinMerge
My convention is to create a directory named MODIFICATIONS (all CAPS to make it stand out) in the wp-includes directory (seems like the appropriate place) and put everything in there.