Problem as far as I can tell is that the trim inputs are simply bog-standard digital repeats. The minimum input from a quick tap is far too large, and holding a button is just linear. If your aircraft is currently trimmed slightly nose-down, even the shortest press of trim-up will make it nose-up. It’s only luck or coincidence if you successfully manage to get it level.
If done properly, a quick tap should be barely noticeable. A longer tap slightly more so etc., up to a maximum rate when a button is held for a certain length of time (1/2 second or something). None of that should be programatically difficult, just requires a bit of forethought (which we’re obviously way beyond now) and time to implement.