As a rule I always try to minimize customizations of standard modules. References are easily drawn again so these are no problem. When I customize a microflow I copy it to an own module and exclude the microflow in the original module. You can then easily fix the resulting errors. When adding attributes I always create a new entity and use a generalization. This way you do not brake anything in the module and can replace the module with a new standard version when it is released. But some manual adjustment shall always be necessary I am afraid.
All custom changes to the appstore modules will be lost.
We recently upgraded from 4 to 5. As Stephan and Ronald say, all the changes will be lost and it is inevitable. It is better to follow the tips provided by Ronald as that is the best way to ensure clean upgrade.