So I have figured out why the twitter card is not showing up. The validator is scraping the page source of the website and not the actual generated HTML. Our site has a bunch of javascript on our page source because we pull the article retroactively, meaning the validator is not picking up any of the HTML that we give it.
This is not really a solution that’s solveable now, but will there be support for scraping the actual generated HTML later?
(To see the difference, inspect the HTML code and then look at the Page Source for the site above)