Once you start customizing the core you are using a fork which makes it impossible to upgrade easily. No way I can solve that.
My recommendation is to implement your custom features as external projects then use your own .sln file instead of the main mojoportal.sln file so you can add your projects in.
You can see an example now of a fairly sophisticated external project because that is how I've been implementing the e-commerce.
You'll note that there is a WebStore.sln file whish has all the projects from the main solution plus the proejcts needed for WebStore including a Web UI, Business, and Data layer projects.
If you open the WebStore.sln and right click the WebStore.UI project and choose properties, you will see the post build events I use to copy the output of the exteranl projects into the correct locations beneath the main Web folder.
This model allows you to keep all your custom code external and easily update the core from svn to get the latest features and fixes. If you find something that really needs to be changed in the core to support your needs you should coordinate with me to try and get those changes approved and committed.
There are some Flash tutorials here that may help explain also:
http://www.mojoportal.com/creatinganewfeaturemodule.aspx
Hope it helps,
Joe