You also forget Republicans ran bad candidates in WV and OH (and completely gave up on the latter). With Jenkins in WV and a competent Republican campaign in OH, they could definitely have won both races.
Have Republicans ever lost with a good candidate? It seems like every time a Republican loses the loss is blamed on a crappy candidate instead of on crappy ideas.
Most people agree that James was a good candidate in MI in both runs, outrunning the baseline partisanship / national environment of the state in both cases and outrunning Trump by over a point in 2020.
But yes, in general this board loves to call any losing candidate a bad candidate in hindsight, even if nobody thought so beforehand. People like Katie McGinty, Bill Nelson, Martha McSally (in 2018), etc. we’re all thought of as decent to good candidates until they lost, at which point they became terrible unelectable losers who dragged down their respective national party with how big of a loser they are.