Custom code should be overrided and/or extended, not overwritten. So when you get a new update from nopcommerce you can simply copy the whole new solution to your existing project and accept overwrites. Then you have to code all your custom code to work again.