One reason congressional elections are so difficult to predict, based solely on national party preference polling, is that the party with the biggest vote turnout nationwide doesn't necessarily win the most seats in either the House or Senate.
In the Senate that's by design. The founders wanted to make sure that small states were represented equally with large states in the Senate. That's why voters in sparsely populated states such as Maine or Alaska have more impact on the Senate, vote for vote, than people from large states such as New York or California.
That's not supposed to happen in the House, where congressional districts are carved up every 10 years based on the latest population data from the Census, in order to make each district cover roughly the same number of voters. But the resulting number of seats won by each party doesn't always reflect that party's share of total votes nationwide.
There are a number of reasons for this, including the longstanding practice of parties in power "gerrymandering" congressional district boundaries to lock in a partisan advantage. In recent elections, this has tended to favor Republicans. But over the last 75 years, Democrats have a longer track record of winning more House seats than their share of the overall national vote tallies.