Here is the problem. It seems like on the initial site load Twitter grabs the meta data once and stores that. The user can then navigate a few posts/pages away and then use the tweet button widget to share the content. The card that is shared with that tweet is always the meta data that lived on the first page loaded, unless you manually refresh the page and use the tweet button again. We are updating the meta information every time a user navigates to a new page and the information for the tweet button content itself, which is updated page to page correctly.
Is there a way to tell Twitter to re-evaluate the meta information in the head without a page refresh? Maybe something similar to reloading the tweet button widget with twttr.widgets.load?