I don’t think we should invent tags which would be applicable only to Thailand. Your proposal to include tambon, amphoe and changwat tags for each place node seems rather similar to the is_in=* scheme, which I understand has somewhat been superseded by boundary polygons for the overlying areas. In places where the boundaries have been mapped, the system seems to work nicely enough. For example, Nominatim is able to correctly parse the address for CentralPlaza Chaengwattana to “Chaeng Watthana Road, Bang Talat Subdistrict, Pak Kret District, Nonthaburi Province, 11120, Thailand”. This, however, of course depends on already having the relevant boundary relations for the tambon and amphoe, which isn’t the case in most of the country.
Your proposal could serve as a semi-temporary fix until the boundaries are created. However, instead of inventing new tags like tambon and amphoe, they should be incorporated into the is_in scheme. (Tagging for provinces (changwat, to use the official spelling) shouldn’t be necessary since we already have boundary relations for those.) However, I’m not sure which language would be preferable for the tags. Using is_in:tambon=* and is_in:amphoe=* seems unlikely to be supported by most software, while is_in:subdistrict=* and is_in:district=* already have several thousand uses.
Moo (official spelling mu), aka muban, are a somewhat different matter. They should correspond to each individual village (place=hamlet), but in actuality they often don’t, since many villages are further divided into several administrative muban. The numbers are effectively ref numbers for the villages, but are used in lieu of the actual village names in the official addressing system. In cases where the muban corresponds with a single village, Using the ref=* tag to note the moo number seems like a logical choice, but I’m not sure if we should actually split up villages to show the different moo, where that is the case.
Official spellings of names in the Latin alphabet usually follow the Royal Thai General System of Transcription. There are online tools to generate this but they don’t work well for some names (esp. those with Pali/Sanskrit roots). It would be useful to note alternative spellings in the alt_name field, of course. (BTW, I prefer the official spelling for amphoe.)
As noted in this thread, I’ve been using the name:th_latn tag to distinguish between the transliterated Thai name and the English name with English-language terms. For example, Nonthaburi Province is tagged
name=จังหวัดนนทบุรี
name:en=Nonthaburi Province
name:th_latn=Changwat Nonthaburi
This could also be applied to individual places.
A related note: I suggested in this thread that villages (muban) should probably be tagged as place=hamlet, rather than place=village, since it better matches the OSM definition for the former. The place=village tag should be used for subdistrict administration organisations (o bo to), which are the local government units usually corresponding to each tambon. Quite a lot of places still need to be updated in order to fit this system.