Thank you for your appreciation.
In answer to your question, no, there is currently no way to move a block of characters to a new location (without disturbing the map data) other than swapping them one by one.
The reason being that any cut operation (or resizing to fewer items) in the charset will always update the map to account for the change (the now unavailability of those chars).
There may be exceptions in simple cases involving copying map data, then cutting/pasting char ranges in the set (to swap them) and then repasting the copied map data, but you will probably find that one of the two ranges that need to be cut from the set (in order to swap them) will end up with their references being lost from the map.
As for your suggestion about "inter-char scrolling", I do know what you mean, we already have the power to do this, it is used in the tile editor when scrolling tiles around, with the caveat that the project must be in a state of decompression (one unique char per tile cell) before it can be done, ie. to remove the possibility that other tiles will be affected.
It is a function that also exists in CharPad Glaze as an essential ingredient in making parallax scrolling backgrounds.
But it does not exist as a general option no, I personally have yet to come across a general use-case where such a function would be needed.
(you have obviously found one!)
Cheers.