Seems I missed a very important thing. The `post_notification_fe_update_subscriptions` function has a parameter, $mode, that affects how the categories are added. If $mode=1, the chosen categories replace default and already set categories. If $mode=0, the chosen categories are simply added to any default or already set categories.

If you have set default categories in the Post Notification settings, then you need to change that last parameter in the function call from 0 to 1, or it will force the default categories on the user even if they deselect them.