Why nonpartisan blanket primaries
The seats where the Republicans do not have at least one candidate are generally the seats where the Republicans weren't going to win. Taking the example from the other answer, consider a seat where the Republicans only get 35% of the two party vote. The chances of that seat electing a Republican are minuscule. The last time I can recall something like that happening, the incumbent was caught with bribe money literally in his freezer a few weeks before the election. And his challenger still barely won.
With partisan primaries, the Republicans in such a district essentially have no reason to vote in the general election. They have a candidate, but the candidate has no chance. The actual winner is always the Democrat chosen by the Democratic primary.
With the non-partisan primaries, the Republicans can vote for the lesser of two evils. This encourages more moderate winners, as the general election generally has a more moderate electorate than either primary.
The biggest problem that I see with the California system is not that it keeps Republicans from winning. Overall, Republicans have been more likely to benefit from it than to lose as a result of it. Republicans have managed a couple times to run just two candidates who then beat (e.g.) five Democrats in a swing district in the primary. Then the Republicans were guaranteed a win. The biggest problem is that it allows the occasional goofball result like that.
To fix that, the primary should switch to ranked (IRV, Condorcet, etc.) or similar voting such that candidates don't split the vote. In most districts, that will lead to a Democrat and a Republican winning. In a few districts, that will lead to two Democrats and allow the more moderate one to win the general election.
Avoiding wasted votes
Another problem is that in a general election, if there are three candidates, but a voter prefers two to another, the voter may have to vote tactically to avoid the disfavored candidate winning. I.e. the voter may have to vote for a second choice rather than a first choice. With the top two system, there are only two candidates in the general election. That makes voter decisions simpler and more transparent. We don't have to wonder if the result might have been different if there were only two choices, because there are always only two choices.
Why Republicans don't win in California
Another problem with the California system is that its use of geographic districts means that the Democrats win more seats than their share of the vote. To fix that, they should switch to a proportional system, e.g. Schulze Single Transferable Vote. In a proportional system, the Republicans would have won something like eighteen to twenty-two seats rather than seven. We don't know the exact number because of districts where there were no Republican candidates. And of course, a proportional system would allow third parties to win some seats.
With geographic districts, many voters don't get representation of their choice. The more evenly divided the district the fewer voters get their preferred choice. In a proportional system virtually every vote counts. Voters may not always get their first choice, but they can choose how to compromise.