On a fresh installation of 1.4, the migration script ntp/1-to-2 will fail silently; consequently, the setting for ['system', 'ntp'] in config.boot.default will not be migrated to ['service', 'ntp'] and will be dropped during boot-config. The root cause is a subtle point in config.copy + an unreported error in configtree (vytree).
(1) configtree.py copy will not recursively create a non-existent path. In this case, config.boot.default has no path ['service']
(2) the underlying library vyos1x-config does not catch the error in the case, hence nothing is reported via the binding libvyosconfig in configtree.py
Both (1) and (2) are easy fixes: (1) will be addressed immediately by adding a check/set to the migration script to add the path ['service']; (2) will be tested before adding.
One can consider the more general question of a recursive copy in vyos1x-config, though evaluation is needed.