Sounds like your puppy has food allergies. Consider changing his food. You may have to experiment a bit to find a good one and go slowly because he is a puppy, but once you do, those issues will go away quickly.
Raw food, freeze-dried raw or frozen raw food diet is ideal for dogs with allergies, but also very pricey. However, you can add it to the top of kibble as a more cost effective method and it will definitely help. Hope your puppy gets better soon!