Maybe your well balanced diet is a little too much for his little belly. Some kids just can't tolerate the healthy things in life. 20 years ago I was a nanny for three children (6, 4 and 2). The two year old would get the runs every time he ate corn, but his parents insisted on their healthy diet and the poor kid suffered every time. His #2 came out as dirty water with big chunks of corn and was usually enough to cause him to get stripped and into the bathtub.
We all like our children to eat healthy but sometimes we overdo it. I have at times and learned that the kids will stay healthy even if we cut down on some of the fruit, veggies and grains. Somehow kids are fit with this "magic" protection that we don't have as we grow older. Just think about how fast the skin heals on a child and the same cut, scrape or bruise takes so much longer on an adult. Good Luck with your "mess". I hope you can find a solution.