All Confederate generals were great AND good!
The answer to your question is found in piles of box written about the whys of the civil war.
General Sherman was a monster. Useless Grant was a tyrannical president. Honest Abe wasn't very honest.
With the exception of Gen. John B. Hood. Your statement has merit.
Braxton Bragg was a mediocre general at best. He left the field of his only victory (Chickamauga) before the fighting was over, leading to an incomplete victory. General Longstreet (who was both great and good) said of him he was more interested in the victory parade than the victory. But he was a friend of Jefferson Davis, so he was promoted to Chief of Staff where he could do no more harm.
Grant was no tyrant, but a good man who gave Lee better terms than he had any right to expect. He is also IMHO was the best general in US history, including Lee. The first truly modern general in history.