weight gain was never an issue for DD2, she was a right porker, even though she did very runny vile green slimey poos that exploded out of her at warp 9 she was really roly poly. She snacked almost non-stop, preferring to "eat" little and often rather than big feeds, another classic sign of reflux/intolerance, a not-very-full tummy doesn't back-flow as much, and also, nursing is a comforter, not just a food source. She also has a stuffy nose, we thought she might have hay fever, but this was another thing that cleared up when I went dairy free.
The best way to diagnose milk intolerance is to cut dairy out of the diet. Yours and his. So that means no milk, cheese, cream, yoghurt and so on for you, and no cow & gate for him! Allergy tests can return false positives and false negatives, and testing him for lactose intolerance (which has very similar symptoms, but is actually very rare) is pointless too, although even many healthcare pro's confuse the two. I had to explain the difference between lactose and cows milk protein intolerance to my health visitor!!
Everything you have said points towards CMPI, the best thing you can do is go dairy free (and soya too, as mentioned above) for two to three weeks and see what happens. Carry him upright in a sling as much as possible (a ring sling, not a baby bjorn type) and raise his head when he's asleep so he's not lying on his back. DD2 slept on her left side, facing me, propped at an angle (n a pillow, tut tut, naughty me) almost from birth. We co-slept with her in a sidecar cot, so I was right next to her and very aware of her breathing etc, so I felt it wasn't a big risk, and one that paid off by giving us all much more sleep than if we tried to lie her down flat on her back.
Good luck, you've had a rough start to being a mum, but hopefully you'll start to see brighter days if you can sort this out.