Jelly, 1616 12 bytes
e€ØcT⁸ṫ“shm”;ⱮḢȯœlØḄṭ⁸¹?“shm -4 thanks to ovs remembering there's a strip builtin
⁸ṫ Remove a number of letters from the start of the word equal to T each truthy index of € for each letter, e Øc œlØḄ isStrip itall aleading vowel?consonants. ṭ “shm”;Ɱ “shm Prepend "shm" to each, Ḣ ¹? take the first (or 0 if empty), there's anything left, otherwise ⁸ ȯ and replace a falsy result withgive the original word. Jelly, 16 bytes
e€Øco\x@ṭ⁸¹?“shm