Yale romanization analyzes Cantonese syllables in terms of an optional initial and an obligatory final (e.g., cheung
= ch
+ eung
). The tone mark is always placed over the first letter of the final (e.g., chèung
). As you mentioned, h
is used after the vowel (more accurately the syllable nucleus) in syllables to denote tones 4, 5, and 6 (e.g., chèuhng
).
While m
and ng
in most other cases are considered syllable initials, in these specific cases, m
and ng
are analyzed as syllable finals; they are also the nuclei of these finals. Following the convention with placing the tone mark over the first letter of the final, the marks would thus be placed over the m
and n
, respectively. In the case of hng
, h
is considered the initial and ng
is the final, so the tone mark would also occur over the n
in this case.
You noted that syllables with m
and ng
seem to always exist in tones 4, 5, and 6, so the nuclear h
may seem redundant, but it is still specified in proper Yale romanization. There are a few cases where such syllables can occur with tone 2 (e.g., 呣 and 嗯), so in these cases, the h
can make a useful distinction (ḿ
and ńg
vs. ḿh
and ńgh
, where the latter two are possible pronunciations of 五).