Some content comes and goes when scanning, some content is simply skipped

I am going to point to one issue with your naming [2016] is BAD, anything inside sqaure brackets gets ignored. in your case you should use (2016)

as for matching plex vs file system:

Can you plex dance a movie that is missing, provide the server logs shortly afterwords and provide the exact filename and path for it?

EDIT:
For old stuff re-appearing disable empty trash on scan.