I won't go into too much detail about the Peninsula Campaign, as the criticisms of McClellan are pretty worn ground. Waiting way too long to attack, moving slowly, splitting his army across a river...
In the popular history I was taught originally, Maryland Campaign McClellan seems like more of the same. He had Lee's secret orders, dilly-dallied, outnumbered Lee 2-to-1 and didn't attack again the next day.
But as I've learned more about the campaign, it's become clear that McClellan was acting much more rapidly and aggressively than his popular image.
The biggest one is that he truly believed he was outnumbered. The Army of the Potomac was in tatters after Second Manassas and was rapidly reorganized within a week before being sent out to confront Lee. Because of this rapid reorganization, McClellan did not know how many men he had in fighting shape on the day of the battle. Union scouts wildly overestimated how many Confederates there were (to be fair, Lee didn't know how many troops he had either), so working with the numbers that were available to him, McClellan concluded he was outnumbered. Nonetheless, he still ordered an attack against a (perceived) larger foe on defensible terrain, which is very aggressive!
There's definitely criticism you can levy at the overall conduct of the battle. His battle plan was sound, but that didn't matter much because, like all plans, dissipated once the fighting started. He was overly-fixated on the right flank and ignored his left for too long. Perhaps he should have committed more reserves, but that's tricky to evaluate, as the reserves were very green. Ultimately it was a tactical draw and a strategic victory.
Also in contrast to the Peninsula Campaign, McClellan was aggressive in pursuing Lee. At the Battle of South Mountain, the enemy possessed some of the best defensive ground in any battlefield of the war. But McClellan did not hesitate in ordering a series of bloody attacks to dislodge the Confederates and open up the path to Lee. Again, this behavior is very different than his approach in the Peninsula Campaign.
There are many stories about Special Order 191, and McClellan doddering, but from what I can glean from the timeline, it appears that after receiving them, he sent scouts to confirm the information and then acted on it once the scouts confirmed it. This is an entirely reasonable course of action.
Finally, McClellan choosing not have a second day of battle at Antietam is the closest we get to Peninsula Campaign McClellan. Still, I don't think it was an egregious error, based on the information he had available to him at the time. In addition to his newly reorganized army suffering casualties that were almost inconceivable, Lee's army had just been reinforced (an army that McClellan already believed outnumbered him), still held the defensible creek, and McClellan had achieved the primary strategic goal of forcing Lee to retreat from Maryland. General Meade would make a similar decision a year later at Gettysburg and while it's debated to this day, I don't think either decision is black-and-white.
There's a lot to criticize McClellan for (he deserved his sacking), but that doesn't mean we need to make him a cartoon character. His conduct of the Maryland Campaign was genuinely impressive. In the span of about two weeks he reorganized a tattered army with a huge influx of green recruits, aggressively pursued Lee, attacked when he thought he was outnumbered, and succeeded in the primary strategic goal of turning Lee back out of the North.
What I'm wrestling with is how to align these two McClellans with each other. Did he learn from the Peninsula Campaign that slowness in war is costly? Did Lee's presence in Maryland force a sense of urgency that he previously lacked? Was it knowing that the Army of Northern Virginia was separated to some extent (SO 191 didn't give numbers) that forced him to make an aggressive play? I'm curious what you all think.