Raindear is right. Your rat just doesn't know what to expect. You have to teach him to expect lovings and possibly treats. Despite his protests, pick him up. Hold him for a while and let him crawl on you. He may be a little nervous. But then put him back in the cage so that he knows that being picked up is not the end of the world. If you give him a treat after putting him in the cage, he realizes that being picked up is actually a good thing. You can give him the treat after you pick him up, but rats usually don't eat when they're nervous. But if he feels comfortable eating on your shoulder, then that's a great step.
I'll use an extreme example I've read about. I do not suggest this for your rats, since they sound pretty friendly and don't need this. I just want to illustrate a point. I read that you can break a rat's fear by holding him for 20 minutes. The rat may squirm or protest, but he'll stay still eventually when he realizes he can't break free. After 20 minutes or so, the rat will forget what he was afraid of. Supposedly, with enough repetition this will make the rat realize that there is nothing to fear from being picked up.
I tried that with a super-shy rat. I'm not sure I should have, but she's fine now. But I would pick her up and keep a blanket under her to catch her poops. I would hold her still against me with one hand touching her. She would try to get free and then resort to just sitting there being tense when she couldn't get free. After about 15 minutes, she suddenly relaxed. She would then try to get out, but it would be more like reaching out with her front legs to pull herself out of the blanket rather than squirming. I would let her climb out and then back into her cage. I then dumped the poop she invariably left behind.
So while the fear-breaking seemed to be doing something, I found my super-shy rat was more responsive to just sitting in a room with her and letting her climb on me on her own terms. Me having access to Cheerios helped.