The following might be a bit mean (as if what I just wrote wasn't) so I'll try and keep it polite.
Disclaimer: I'm sure McCullum is doing his best to be a good player, and wants to be a good player.
McCullum dominated age group level cricket, and was an annointed Next Martin Crowe in his teens. The problem with Chosen Ones who are used to dominating their lessers is once you put them up against equals, suddenly sport gets hard. For some, it's too much too soon and their confidence takes a big knock. McCullum was elevated very quickly to the ODI side when he was barely out of his teens to face one of the best ODI sides of all time, and he inevitably failed. He spent a lot of time with the New Zealand side without ever really playing or dominating much Plunket Shield cricket, so he never really played at an intermediary level. NZC tried to take shortcuts, and shortcuts fail 99% of the time.
McCullum dominates any side he knows he is better than, which is why he has such a good record against minnows. Also, when the pressure is off because the work has either been done (Napier 600 match) or because we're stuffed (Australia around that time), he probably feels less pressure to perform, and less pressure makes sport easier because nerves have a nasty habit of dulling the instincts your 10,000 hours have constructed and exacerbating your flaws. I suggest he's a very insecure batsman and not very confident in himself at all, and you see this in his desire to feel bat on ball and in playing big shots to get on top of the opposition. McCullum can play with beautiful soft hands, has a good stance, quick feet and can put the ball into gaps for quick singles. These are not normally the attributes you associate with a bloke who is prone to go looking for the ball early on, often defends with hard hands, gets out jumping all over the place in his crease and holes out on the boundary. His lack of confidence in himself to bring those good skills we have seen him use to the big games is exacerbating his flaws.
He also falls down with what appears from the outside looking in to be an inability to listen and learn. A few years ago he was quoted on radio as saying he doesn't listen to Martin Crowe anymore. Not every player better than you will always know what is best for you, but being so dismissive of our best ever batsman and a man who has coached Ross Taylor, Jamie How and Tim McIntosh to be better batsmen than they were is a very poor attitude to take.
I think his chopping and changing of where he wants to bat is a mental cop out. He has the basic technique to bat anywhere in the order, but (again from the outside looking in) it's almost like he's thinking "If I open/bat three/bat four/bat six I'll finally find my true place in the order..." and it's not working for him because the issue isn't and has never been where he bats, it's how he's batting.
It's not too late for him to change - lots of players have been excellent until their late 30s - but I'm dubious he will listen to those who can help him best.
EDIT: I forgot to say in the Chosen Ones section that those around him at a young age telling him how wonderful he was, and how he was the next Crowe and so on did him (and others like him) more harm than good. That sort of carry on from fans and media is unavoidable, but coaches should never give out too much praise. This applies across all sports. It's very easy to get lazy when people at every turn see no wrong.