He has learned that responding to a recall means the fun is over, and that’s what you need to change. First work on the recall by repeatedly calling him, giving him a high value treat and then (this is key) letting him go back to what he is doing. Repeat over and over and over again. Similarly, he does the snatch and run because a) chase is a really fun game and b) he knows you will take away his prize. So don’t put him in a position where he can do it - either keep him on a leash (I know lots of people dislike retractable leashes, but if you learn to use them properly it can be good for this sort of situation - the reason I like them is it prevents them from getting so tangled up) or confine him to a puppy proofed area where this is nothing he can hurt himself with and do not chase him - if he’s got something relatively harmless like a stick or acorn, just ignore him. If it is dangerous, then you have to practice trading up - yes, it may be annoying to have to carry high value treats around, but it will be a good thing in the long run, and it won’t always be necessary.
You can save yourself a lot of aggravation in the future by putting some more work into it now.
Mine have never been too bad about grabbing inappropriate things and running off since we NEVER chase them. We practice the treat-release protocol regularly on off-leash romps through the park, and they now “check in” on their own regularly to get a treat. On the rare occurrences when we run into someone or see deer, etc., they come running as soon as they are called because the behavior has become so ingrained for them. Not saying they are 100% - I’m sure there is some distraction out there that we just haven’t found yet that would get them, but they are pretty darn close.