Принято считать, что вышеназванные слова синонимы и ими обозначают человека робкого и иногда даже стыдливого. Однако, вспоминаем правило "одно слово - один смысл", если слово есть, оно обозначает только одно явление. Так что давайте разбираться, какие именно нюансы кроются за этими словами.
Застенчивый = за+стеной
Застенчивый человек, тот кто прячется. Стена - это аналогия, метафора, образный оборот, где неким укрытием служит целая стена. Стеной в данном случае может выступать у ребенка мамина юбка или настоящая стена, а у взрослого маска или даже другой человек (через которого он пытается проявляться в жизни). За стеной прячутся от страха (страха неизвестности, страха быть отвергнутым и т.д.)
Стеснительный произошло от стеснение и стиснуть. Т.е. человек стиснул себя и не проявляет в должной мере. Причиной опять же может выступать страх (проявляться, быть непонятым или быть отвергнутым и даже наказанным).
Скромный = с+кром(ка)
Крома или кромка - рамка, край, кайма, грань, граница.