Exactly thanks tADEUS73. After some more testing, I finally noticed the tiny INOP sticker on FD button. Man, I am blind!
I think the behaviour I was missing was FD mode, as it is not coded (yet?) AP module tries to make up for it by force switching to HDG or VS mode instead.
That cause, abrupt behaviours like I explained. It steers out of course during GPS to Localiser transition if heading bug is not set as same as course bug. Or it just zero out vertical speed when AP is activated during climb.
I am not sure if there is a plan to implement FD mode on AP. If not, at least the code has to be amended for a smoother transition.
Simply, when AP button is activated, it should hold the attitude until vertical and lateral modes selected. VS shouldn't be automatically reset to zero.
Or heading should automatically be matched to course when GNS auto-switches CDI.