As more analysis on the state specific level comes in, particularly with regard to the states that defied conventional wisdom, we can now get a more data-backed analysis of what happened there:
"4. The real story—the one the pundits missed—is that voters who fled the Democrats in the Rust Belt 5 were twice as likely either to vote for a third party or to stay at home than to embrace Trump."
-- from The Myth of the Rust Belt Revolt
The supposed flight of working class voters to Trump just didn't fit, as some had already guessed just from looking at the overview, particularly in income bracket totals. Instead, it was that people who'd previously shown a leaning towards Democrat decided for whatever reason that they weren't going to vote for a front-runner this year.
And since this change wasn't well reflected in the general trend of polls leading up, we can figure a good bit of it was a last minute change. Exit polls don't tell us much about the specific reasons why there, so it's hard to get more than speculation on the full details spurring such a turn.
Perhaps that last minute flurry of attacks on the Democratic candidate among "fake news" outfits?
And just how much of it was because of Comey's unconventionally timed interference?