Your son is still quite young to comprehend fully the standards of behavior of proper etiquitte. What you must do is rather play a game out of it and have you and him role play certain situations in which he must respond appropritately. The more practice he gets with this, then the more comfortable he will become in doing it on his own.
Also you can set up a behavior chart/contract for the month. It works like this...Everytime that he acts appropriately, he gets a sticker for that day. Make sure that it is sticker that he will like. After 5 stickers...they do not have to be consecutive..he will receive a treat. You want to reinforce the positive behavior. The treats do not have to be expensive. Then after a month or so, if he has been improving, up the sticker count to 10 stickers. At his age, he WILL love this behavior management system.
I hope that I have given you a few ideas to help. If so, please ACCEPT so that I may be paid for my effort. Thank you and have a GREAT DAY!!!!!
It sounds like your sound may simpy be very shy and introverted. When he is around other people and out in public, just remind him of the proper greetings and/or words that need to be spoken. At home, you could even role play certain situations when an unknown person comes his way and the appropriate way to respond. Since he is still fairly young, he must be taught these behaviors which seem all so normal for us as adults.
You can not change the opinions of your parents. Just take the comments with a grain of salt. Somitimes grandparents have their own ideas of right and wrong when it comes to child rearing based on their own values and ethics which may be totally different from yours. You are your son's mother and you are raising your son based on your beliefs!!!!