You aren’t the first to offer something like this. I responded to an article just a few days ago from someone else with a very similar proposal.
As presented, I think both ideas are going no where. You have the same issue that I responded to on that earlier article. Your system starts with a default assumption that all candidates are equal and only their party matters to voters. That’s probably only true to a very small minority of voters.
I also don’t think your idea actually eliminates gerrymandering. It mitigates it somewhat, but it doesn’t eliminate it. It may even worsen the issue by encouraging even more packing.
You are assigning “winners” based on vote tallies don’t represent who people actually voted for. You have all 5 districts voting independently and then total up the numbers and reapportion winners based on the total. I doubt any Supreme Court would ever allow that.
Were those people who voted actually voting for the “party”? Or did they think they were voting for the “candidate”?
You are awarding a seat to Sally Jones in district 1 even though she lost her head-to-head race and justifying it because the people in district 4 really liked Carlos Sanchez a lot.
What if the people in district 4 would have liked Bill Smith even more than Sanchez? But they never got a chance to vote for him because he didn’t show up on their ballot. You can’t realistically claim that to be a “fair” system.
Assuming one could get Congress to repeal the current law requiring single-member districts, you could probably get away with holding a statewide ballot based on Party voting *IF* there were no candidates named. You’d simply cast a ballot for “Democrat”, “Republican”, “Green Party”, etc.. Districts (and gerrymandering) would become a relic. You’d have a very simple state-wide proportional vote.
Once you had a state-wide vote total you’d apportion seats between the parties based on the percentage of the vote each drew. Then the parties could name the individuals who would fill those seats.