I fully understand how frustrating that can be; in particular when you want to finish the walk and the dog doesn't want to get close to you. My guy has the habit of stealing shoes and I quickly realised that many people leave shoes outside!
However the good news is: it is not abnormal and it is a simple training problem.
Maybe the dog has been reinforced to keep the ball. If you chase him he goes in "play mode" and his understanding is that the game is about keeping the ball. You have to teach him that the game is to give you the ball back.
So the first step is: stop reinforcing the habit. When you want to play with him, if he doesn't give you the ball after a short while, just ignore him and leave. Don't run after him, don't talk, etc. Don't tell him how frustrated you are, that will just make him more excited.
You will have to train him but before you do so the rule is prevention: keep him on leash when you walk him, keep him on leash when you train him to give the ball back, etc. If you walk him on leash and pay attention there shouldn't be that many balls to catch. Prevention is the key.
Then you have to train him to bring back and give the ball. He's still a puppy so you can benefit from his natural curiosity and desire to play.
I don't want to go into the details of dog training using positive reinforcement in this answer, but I'll link to other answers and resources below.
The most important point is to realise that the training has to be done before the "bad" behaviour occurs. You don't train him when you walk him. You train him in the house, then in the garden, then at the park, and only after all that you'll perfect the training in real life situations.
What I would do is
- start in the house and put him on leash: the leash is there to keep things under control (prevent him from running to another room and stay away from you - it is not used to forcefully bring him back to you)
- throw the toy and attract his attention. Reward every tiny steps: reward when he looks at you, reward when he moves toward you, etc. Don't introduce any cue yet! Attract his attention if needed (patting your legs, etc.).
- the goal is to make him want to give you the toy. To do so you have to highly reinforce that. However you have to start with 2-3 repetitions where you show him that you will reward that. So during the first tries you can take the toy (if he's close enough) or move him toward you with the leash. When he gives you the toy, reward him and give him the toy back
- add a verbal cue only when he's offering the behaviour on a regular basis.
Here you have a video of a 6-weeks old puppy that already learned that.
Some dog training references
Ultimately you'll play fetch in the pool!
(image source)