Ok so after much hair tearing, I figured it out. You can’t bundle it the way I did in the setup.php. You have to do it like this:
bundle('article')->localize('ajaxArticle', ['ajaxURL' => admin_url('admin-ajax.php')]);
The next error I encountered immediately afterwards was due to ajax not being added to the collect in functions.php. Same thing as the guy here:
Basically, you have to change collect to this:
collect(['setup', 'filters', 'ajax'])
Hopefully this will help the next dummy trying to port Sage 9 to Sage 10!