Golff y Côd - Treiglad
JavaScript (ES6), 180 bytes

x=&gt;x.replace(/^([cpt](?!h)|d(?!d)|[bgm]|ll|rh)(.+)/,(_,y,z)=&gt;({p:"b mh ph",t:"d nh th",c:"g ngh ch",b:"f m",d:"dd n",g:" ng",m:"f"}[y]||y[0]).split` `.map(b=&gt;a.push(b+z)),a=[x])&amp;&amp;a


Outputs as an array of strings. This is my first try, so it's almost certainly not optimal.

Try it out



f=x=&gt;x.replace(/^([cpt](?!h)|d(?!d)|[bgm]|ll|rh)(.+)/,(_,y,z)=&gt;({p:"b mh ph",t:"d nh th",c:"g ngh ch",b:"f m",d:"dd n",g:" ng",m:"f"}[y]||y[0]).split` `.map(b=&gt;a.push(b+z)),a=[x])&amp;&amp;a
&lt;input id=A value="pobl"&gt;&lt;button onclick="B.innerHTML=f(A.value).join('&lt;br&gt;')"&gt;Run&lt;/button&gt;&lt;br&gt;
&lt;pre id=B&gt;