I figured it out. There was a conflict with the web.config file. The site is hosted on an IIS server, which was upgraded so I included the file for permalinks. The server was then downgraded because of a specific issue, and the file caused a conflict.
I’m not sure why the conflict didn’t surface until the upgrade to WP 3.4, as it was still working fine before. I deleted the file and everything works. Marking resolved.