1. You can train only once per level in each guild. Then you have to wait until you get next level. If you miss your training opportunity (you level up twice without training in between), you lose the training opportunity. Grrrr

It can't be mended.
Therefore, train every time you gain a level. Avoid levelling up more than once as long as you have something to train in the guilds.
2. It's a result of the game logic. The game rolls your HP from scratch every time you level up. If the resulting number of HP is lower or equal to your current number of HP, you will be given 1 HP. An example:
If you are level 5 warrior and if you are promoting to level 6, the game rolls HP of a warrior 6 times, adds the HP together and compares the result with your current number of HP. If the result is lower or equal to your current number of HP, then you get 1 HP. If the result is higher, then you get the difference between the result and your current number of HP.
Therefore, the dreaded "1 HP" is a result of your current high number of HP.
As far as the ability points are concerned, the higher are your stats the lower number of ability points you get. In my experience, you can always achieve 2 ability points by repeated attempts to level up.
Recommendations:
a) Give up "nice results" in gaining HP. It's futile. A few "nice results" will cause the "1 HP" in several following promotions and you will lose all your effort. Ignore the number of HP gained completely.
b) Try to get two (or more) ability points instead until all your stats are near 18. It's always possible.