There are common hotkeys, like shift + left_arrow, or ctrl + shift + left_arrow etc. They are used everywhere. It is possible to enable that behavior by default for the numpad too. Afaik, it works out of the box in Windows, but for Linux it is done via command:
CudaText depends on Lazarus code, it must be lazarus issue then. Can you pls install Lazarus IDE (you can use FpcUpDeluxe to install portable dir w/o installing it to OS dirs). And repro it in IDE in the source editor?
I didn't test with "setxkbmap" but tested simple test - and see problem in Lazarus too.
Normal arrows give code in OnKeyDown: 37 38 39 40.
Arrows with shift, shift+ctrl also give 37 38 39 40.
In NUMLOCK state, Ubuntu:
Num-arrows give OK codes 37 38 39 40
But Num-arrows with shift, shift+ctrl give another codes! 100 102 104 98.