Was it his personality, poor intelligence, bad luck, or anything else?
The question is kind of unspecific; McClellan had major commands for a bit under two years, participating in several operations in different circumstances.
In terms of specific campaigns, it's important to look at both general and particular circumstances. Broadly speaking, McClellan was a strong believer in compromise, order, and political moderation; he believed the extremism of the fire-eaters and abolitionists both had brought about the Civil War, and that he was fighting to protect the Union as it was, the Constitution as it is. He believed that most Southerners were really pro-Union, and had been hoodwinked into secession by a class of wealthy planters. However, he also believed that if the North sought to change the Union the South had left, their willingness to rejoin would evaporate, and that blood shed on the battlefield would radicalize northerners. Eventually, the changes would become so revolutionary and the struggle so remorseless that the Union could never be restored, and that popular and responsible government would be discredited.
Starting from these premises, McClellan endeavored to minimize battlefield casualties to keep the Northern people moderate, and to overawe the Southern people with a show of force -to demonstrate the Government's ability to crush, but to refrain from actually crushing anyone. However, since the U.S. had essentially no army worthy of the name before the war, building up this capability would be an arduous task indeed. Union arms had been humiliated at Bull Run that summer, and Ball's Bluff that fall was such a public debacle that Congress assembled a committee to investigate generals' performance.
Furthermore, McClellan was one of America's most advanced students of 'big war science'; he knew about moving and supplying troops, etc. On the basis of this knowledge, he formulated a war plan of simultaneous offensives against the Confederacy's key logistical nodes, from secure bases of operation. The most prominent objectives in McClellan's campaign plan were the rail junctions at Corinth Mississippi, Chattanooga Tennessee, and Richmond Virginia. They needed to be attacked simultaneously to prevent the Confederates from massing enough forces against any of the Union field armies to defeat it alone. As such, the campaign couldn't proceed until the slowest Union army was ready, and that's not even allowing for the difficulties of campaigning in winter and the prudence of waiting for spring and summer. Henry Halleck, the main commander in the Western Theatre, proved consistently reluctant to get moving, and only allowed US Grant to attack Forts Henry and Donnelson after he got a false report of PGT Beauregard coming to the West with a large force.
However, shortly after the beginning of McClellan's Spring Offensive, Lincoln removed him from his position as General-in-Chief, and did not quickly replace him. As a result, there was no professional officer to coordinate all the Union armies and prevent Confederates from shuffling their forces between theatres. Indeed, just in the Virginia theatre, there were three or four Union commanders, with no one to arbitrate between them but the president. When McClellan embarked his army and made for Fort Monroe on the York-James Peninsula, you also had McDowell's Corps which was detached around Fredericksburg, Banks's two brigades, and Fremont's Mountain department, and that's not even counting the Navy.
So the command structure of the Union armies in Spring 1862 was totally dysfunctional. However, there was the added problem of intelligence services. McClellan got most of his intel from Pinkerton, who was a detective by trade, and his practices, such as trying to count enemy regiments as opposed to men, led to inflated ideas of enemy numbers, 'aided' by Confederate deception efforts. Confederate General Macgruder for example was able to bluff McClellan's scouts by repeatedly showing the same force in different places, making it appear larger, and by the time the army was ready to advance, they'd been reinforced by the actual main Confederate army in a well entrenched line. It should also be remembered that at this time, the Confederates had instituted the first draft in American history, while the Union had closed its recruiting offices, so the Confederates had a manpower surge while the Union had plateaued.
McClellan wanted to turn the Confederates out of position with another amphibious landing, but without command over the navy, was unable to order them to brave the Confederate guns at Gloucester Point on the north bank of the York River. As such, he forced the Confederates out in a siege; it was a slow method, but a sure one, and one which minimized Union casualties.
After he was far enough up the Peninsula to establish a new base of operations at White House, McClellan began wrangling with Lincoln over returning McDowell's Corps to his army; he needed it to secure his army's right flank against the York river. It's a long story, but Lincoln ordered McDowell into the Shenandoah Valley to try to find Stonewall Jackson's force under protest from McDowell, and Lee was able to successfully turn McClellan's flank and cut him off from his base. McClellan then had to establish a new base of operations at Harrison's Landing on the James River. After this, though, the administration pulled the plug on McClellan for a time.
When he did return to command, it was during a great crisis. John Pope had become the commander of the main Union army in Virginia; he had been smashed terribly at Second Bull Run, and Lee had invaded the state of Maryland. The army's morale was at an all time low, after a string of defeats and poor leadership. What reinforcements it had were green as grass, and could not be relied on in combat. As such, McClellan sought to defeat Lee primarily through strategic maneuver. Lee lost thousands of stragglers trying to react to McClellan's march to Frederick Maryland, which threatened to cut Longstreet's command off from Jackson's. When McClellan reached Frederick, a Union private found a copy of Lee's Special Order 191, which detailed his campaign plan. McClellan seized the opportunity the very next day; the Battles of South Mountain saw the Confederates driven from the field, strengthening Union morale. Just as important, it left two of Lee's divisions stopped up in Pleasant Valley; if Harpers Ferry didn't fall when it did, Lee would have lost a quarter of his infantry with scarcely a shot fired.
Fast and slow are relative terms when it comes to military operations; McClellan has been the butt of many jokes since Ken Burns made him essentially the comic relief, to the point that the very real operational problems he labored under have been obscured in popular memory.
Feel free to hit me with any follow up questions!