I agree that there is some contoversy over whether soy is good or not. We try to make our choices based on what is closest to the way it is found in nature (as little processing as possible for the product). For instance, butter is a better choice than margarine, natural vegetable oils over hydrogenated ones, liquid milk over powdered milk, etc. So as far as soy milk (which our dd drank between 1 and 2.5 years and still prefers to drink), find the least processed soy. Silk Soymilk is made from organic, non-gmo whole soybeans. Many other soymilks that I have seen are made from soy powder and very likely non-organic and uses gmo. So Silk, imo, is a good soymilk to drink.
My dd would throw up after consuming whole cow milk before. We would just try small amounts of cow milk from time to time to see how she reacted. At around 2.5, she would drink it just fine but in the last few months, she seems to get stomach aches after drinking a full glass of milk so I have started to give her milk with acidophilus added (I use Nutrition Now brand kids acidophilus powder, one scoop per glass) and now she tolerates it fine again. She can also eat, without any problem, organic,whole milk plain yogurt and natural cheeses. Does your ds eat yogurt and cheese? He could get the majority of his calcium needs from those if you decide to not give him soymilk.