OK, I've repeated the upgrade starting from where I was last night and it's like this:
User profiles are stored in ~/.hts/tvheadend/accesscontrol/ Tvheadend should never be run as root with no user specified. It can be run as osmc or as sudo with the -u osmc switch. So the root issue was a red herring. (or a mistake by Marc, however you want to present it )
Your postinst creates a user profile for osmc in '1' if that file doesn't exist. That could overwrite any existing entry for user osmc, and the file it writes is not compatible with 4.2.2. So for anyone installing 4.2.2 for the first time it fails. It is unnecessary to create this file as tvh will create a default entry when it first starts up if none exist and the existence of this file may stop the wizard launching in tvh which would be a bad idea. I suggest that if ....fi is removed. You have to then manually create the osmc user in the web interface but that's easy with the wizard. For a migration from a previous AppStore install that file is not created, as I read it, so should not be an issue.
The bottom line is if anyone has rolled their own tvheadend and wants to keep their settings, that postinst will need to be changed. Currently, the workaround is to install, then delete accesscontrol/1, then
sudo systemctl restart tvheadend.
TVH automatically updates the config files to the latest version. In my case, it did not migrate the streaming and dvr settings from my existing osmc user and I had to set these in the tvh web interface before everything worked. That also gave me back my pause button on live TV I can't see why the same issue would not apply to a migration upgrade. Unless/until this is fixed by the tvh team, it's worth a warning in the upgrade instructions.