It sounds like hormones to me. Basically he is like a teenager, he's not sure what he wants. My male Zeke is about 4 years old and he has been like that since I got him. He is really only like that when he is sitting on his cage, otherwise he is fine. When he hisses at me when I try to pick him up I don't leave him alone, even when he bites hard I make sure he gets on me. He has bit me hard enough to draw blood quite a few times but now he never bites but he will act like he is going to. He needs to know that he is NOT the boss, regardless of what he thinks. I also don't let him sit on my shoulder all the time. The shoulder is a dominant position for a bird so he gets to sit on my shoulder as a treat when he is being good.
Also, having him with you in other places in the house but not actually on you could help. I also spend time just talking to him with him sitting on my hand. If he tries to go on my shoulder, I put him back on my hand. After a couple times he realized he's not getting on my shoulder and will be happy to sit on my hand. Then I just talk to him. Zeke loves to run around on my bed while watching American Idol with me (he thinks he is going to be the next American Idol

) He also loves to go upstairs and sit on the desk and play. I give him paper to chew on (his favorite) and keep some treats with me for when he is being really good. He will very, very rarely let me scratch him and even when he does, he tolerates it but doesn't really enjoy it.
Just be patient and spend some time with him in different ways. Make sure he knows that he is not the one in control and eventually he will come around. Giving a treat when he will come up on your hand without being hissy is very helpful too.