Yale tone marks and low-level 'h' for vowel-less syllables
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 五).