Fantastic that your GP is now taking it seriously.
I have read the whole thread with interest. My DS2 who is nearly 5 has food issues. Always did have, since birth. Terrible colic and sickness when on bottles. When weaning he just gagged all the time. When he was an older toddler he would quite often start gagging and couldn't stop which ended up with him bringing up EVERYTHING he'd already eaten.
Please ignore everyone who reads posts like yours and thinks you can just treat such children as you would a normal "controlling" child who is just trying to get their own way. Until you have experienced a child who is phobic (and by that I mean actually shaking with fear at even attempting to lick a new type of food), you can never understand what those parents are going through.
I KNOW I have mainly done the right thing with DS2 as DS1 has no such issues with food. I think DS2's phobias may have different causes - he has a (diagnosed) peanut allergy and eczema so who knows what other food intolerances he may have had when younger that we weren't aware of. He also had tonsillitis when he was a toddler quite a few times which started his main gagging problems I think. He just became scared of food.
I know how bloody stressful and upsetting it is. But what has helped enormously with us is as follows:
We made a concerted effort to all eat as a family as much as possible (v difficult to do wtih DH's working hours but we really tried.) We also agreed that we simply would NOT let it stress us out, even if it meant bloody ACTING relaxed during mealtimes. No shouting or cajoling. We agreed that we would let him eat his preferred "safe" foods while he got used to the idea of the rest of us sitting at the table eating his "scary" food. Once he was relaxed with the scary food being on the same table as him we progressed to putting some of it on a small plate next to his own plate (AT EVERY MEAL TIME) and saying "That's for you to try, if you want to. But you don't have to. You might like it if you try though, and I tell you what, we'll start a star chart and you can get a star every time you lick and smell a new food. Once you've got say, 20 stars, then we will go to Gulliver's World for the day." He was a bit older by then, say, 3 - so able to understand the concept of star charts and Gullivers World! We also gave our older son a star if HE ate a new food so it introduced an element of competition which encouraged them both!
I think once the pressure was off and we weren't MAKING him lick the food, but that it was his choice and if he did manage to do it then he'd get the theme park trip that kind of lit a light bulb in his head. And one day he just started licking and smelling the new stuff. We gave him lots of praise as we could really see what a HUGE mental effort it had been for him to do even that. It then gave him the confidence to realise that there was nothing scary about doing the licking and sniffing thing.
Slowly, at his pace, we upped the game to saying he had to put the thing in his mouth (spit it out if he wanted to, but it HAD to go in his mouth to get a star). Again, it took huge effort to overcome this fear but he did it, at his own pace. He got the promised trip to Gulliver's World and then we started a new start chart telling him that he could earn stars towards another treat.
Next stage was to say that he had to actually chew and swallow the food on the little plate. And yet again, slowly he managed to do this. Eventually he was eating pizza and chicken, so we were able to treat the kids to restaurant trips to increase DS2's experience of food being an enjoyable, social thing.
He is much improved now and the other night he even tried a bit of scallop off my fork! (He pulled a face and wasn't enjoying the taste so I told him if he didn't like it that was fine and he could spit it out, the important thing was that he had asked to try it and HAD tried it.)
Don't get me wrong, he is still phobic around food. He won't touch fruit or vegetables - but I dont worry any more like I used to, he just gets smoothies, and the veggies are blended into a smooth sauce to put on pasta or in chillies etc. We are now aiming to get him to eat, say, casseroles with the veggies in them visible and not blended into the gravy for his portion as it's frankly a nuisance and I'm also convinced that he can manage it if we do it as his pace.
I still think he has major issues - for example, if DS1 goes near him with a peeled nectarine or I want to eat an orange near him, he screws up his nose in proper disgust at the "smell" and runs away to get a drink to try and stop himself gagging. That is NOT controlling fussiness. It is not normal. He doesn't have special needs.
I just wanted to say, OP, that I know what you are going through. It is heart breaking and stressful as fuck. But slowly, slowly, my DS is getting better and better and with him it has definitely been about overcoming his fear, and gaining the confidence to just TRY stuff.
What I would say though is that if your boy is not putting on weight then you are doing the right thing with the referral. Our GP wasn't that concerned about my DS's food issues because he was growing (slightly underweight, but nevertheless growing). I think it's because we have always given him his "safe" foods to keep his appetite up, whilst using the tactics mentioned above to get him to expand his range. However, we have always set boundaries eg. no dessert if he makes NO effort with his tea, if he makes a good effort with it but doesnt' eat it all then he is allowed dessert but no chocolate treats or crisps or whatever. And if he eats it all with no fuss then he gets dessert and treats too if he wants. He is always allowed a supper later on near bedtime of ham/bread and butter/toast/cheese toastie if he eaten well during the day. But if he has made no effort/next to no effort and he is not ill he knows that he will only get a small piece of bread and butter for supper and nothing else. I feel that that way he doesn't go to bed TOTALLY hungry and I don't feel TOTALLY guilty.
Those rules seem to stick in his head and seem to work.
Sorry, that is all so, so long. Hope it wasn't too boring!! But maybe some of it might be useful!