The versioning model in Salesforce is rigid so that upgrades are always possible. Essentially the visible parts of your app must continue to exist in new versions so any customisations that depend on those will continue to be supported. Customers generally upgrade rather than uninstall and re-install so that data created using the app's objects and fields is preserved (as well as the customisations).
A caveat is that parts of your app do not automatically change in an upgrade such as layouts contained in your app. If you want customers to use the new fields you will have to provide instructions to modify the layouts (and also to add the new fields to profiles if you do not include permission sets in your app).
Generally the customisations will continue to work. But if you e.g. decide to stop using one field and move the logic to another field, you may break your customer's customisations i.e. the upgrade will succeed but the assumptions the customisations are based on will no longer be correct.
To your specific questions:
- Upgrade is possible and normal.
- Customisations will still work (in general).