Thanks to
this article I found, it gave me a clue of where to look and I managed to get all my apps to pull back in.
/Users/[username]/Library/Daemon Containers/[UUID]/Data/Library/Caches/
There are several UUID folders, but one of them should have a 'Placeholders-v2.noindex' folder inside the Caches folder. This folder contains the app stubs. You can use this terminal command to find which UUID/folder path that is if you don't want to look through them manually: find ~ -name 'Placeholders-v2.noindex'.
Here's what mine looks like:
View attachment 2470384
I was feeling dangerous and ended up deleting the whole UUID folder itself and rebooting the Mac to let it regenerate. (It'll generate a new UUID folder name.) Afterwards, all my apps were showing up in the notifications list. It still remembered which apps I've had turned on/off previously, so that must be stored somewhere else, but at least all my apps show up now.
I'm no expert, so do this at your own risk. I have not noticed any issues though. I figured it was probably "safe" since it was under my user folder, and I plan on doing a clean install in the near future anyway.
BTW, I'm not sure if that linked article is entirely accurate. In my (quick) testing, I found that my apps stubs still got pulled in even when iPhone Mirroring access was revoked and not set up yet.