We roll the ball and he stays until we say "OK" and he runs and gets the ball and brings it back. Problem is puppy doesn't give us the ball back. So, we say "SIT" and then we reach for the ball and ask him to "DROP IT" sometimes he does, sometimes not. Depends on how excited he is.
Have you tried using food to get him to drop the ball? I'll use a very yummy smelly treat, and put it right up to the puppy's nose before asking for them them to drop the ball. When they do, mark it ("yes!") and give the treat. You're basically trading a treat for the ball, and teaching an association between your command and the behavior of giving up the toy. You can do this with a tug too.
As quickly as I can, I switch from showing the treat first, to having treats out of sight, in a treat bag or pocket, and only pulling one out AFTER the puppy has dropped the ball/toy - you don't want him to become dependent on the sight of a treat in order to comply with the command.
From there, I transition to the only reward being praise, and then I throw the ball again, or give the toy back. Treats are no longer necessary because the reward is continuation of play, the food is only to teach what the verbal cue means.
It's a good idea to work with him on trading, where you hold one end of a toy (anything tuggable) or a low value bone (Nylabones are good for this), while the dog chews the bone, or tugs with the toy. Work on your "drop it" command, trading a treat for the toy or bone, and then giving it back. Because you continue holding onto the end of whatever, you still "own" it, and he can't go off on his own and refuse to give it back. When you're done playing, end the session and put the toy away, or let him take the bone and chew it on his own for awhile if you wish.
Establishing a foundation of trust, where he gives you "his" things for a reward, and either gets them back again or he gets a treat AND he gets it back again, makes it much less likely that he will become a resource guarder.
Another thing for retrieving a ball is to teach him to bring it right to your hand, so he's targeting your hand with the ball before getting the reward. We do this in flyball training with dogs who tend to spit the ball out too soon, either while still going over the jumps, or before or slightly after crossing the start/finish line.