I fixed this issue by merging the CMSApp_AppCode project into CMSApp then deleting CMSApp_AppCode after upgrading to Kentico 10. I had to redo a lot of work but it fixed this issue. Must have been some type of assembly or type conflict causing the issue, even though there were no errors in the app or logs.
https://devnet.kentico.com/questions/kentico-upgrade-tool-didn-t-merge-cmsapp_appcode-and-cmsapp-projects;-when-is-this-supposed-to-happ