The real issue was that I had ended up cutting a lot of corners to try and get things done in time, particularly with regards to testing. Definitely a major lesson learned.
The MCUs didn't take long to program with a ZIF socket, but once they were baked onto boards and I was finding bugs that needed to be fixed, that's where it really turned into a pain doing it over SPI.
After all of that, I still ended up having to bodge 2 connections on all of the final boards after all was said and done (which was the 5th or 6th board revision after I did small test runs to play with things and fix issues)