There are quite a few computer programs to compute New Moons and Principal Terms with high precision. Once you have the New Moons, you know when the lunar months start and end. The first day of the lunar month (mùng một) is the one containing the New Moon. However, here you need to be careful to consider the correct time zone. It is the reason why the Vietnamese and the Chinese calendars differ on many occasions. For example, if you have New Moon at yyyy-02-18 16:24:45 GMT, then the first day of the Vietnamese lunar month is yyyy-02-18, because 16:24:45 GMT is 23:24:45 Hanoi time of the same day. The Chinese lunar month however begins on the following day, because the day in China begins a bit earlier, so that the New Moon (at yyyy-02-19 00:24:45 Beijing time) is contained in yyyy-02-19.
After having the start/end dates of the lunar months you can determined their names and the leap months as follows. The Winter Solstice (Đông chí) always falls in month 11 of the lunar year. So we need to compute 2 New Moons preceeding two consecutive Winter Solstices. If there are 12 lunar months between them then we are done: just number the months 11, 12, 1, 2, ... starting at the month containing the first Winter Solstice.
Matters are a bit more complicated when there are 13 lunar months between the lunar months containing the two Winter Solstices. Then we have a leap year (năm nhuận) and need to find out what the leap month is. Here is he rule for doing it: the first lunar month after the first Winter Solstice that does not contain a Principal Term is the leap month. After finding the leap month you give the months the names 11, 12, 1, ..., M, M leap, M+1, ...