As a quick test I decided to switch the domain from using PHP 7.4 to 8.0 and, while nothing appeared to stop working, the list of errors being logged was scary. 😊
I've switched back for now but will probably have to investigate and clean up my code to be future proof.
It appears that PHP 8.0 is a lot stricter on ensuring variables are defined so most of my fixes have been isset() checks for GET, POST and SESSION variables. I also had to throw in some checks for the JSON generated by the webmention endpoint so that it didn't log a bunch of errors each time a mention was received.
It's taken a couple of hours to go through the entire site, testing and correcting, but I think I've caught most, if not all, of the issues. I'll have to keep monitoring the error logs to see if anything else crops up.