I haven't tested this extensively, but setting the CSS property user-select to "none" on the to-be-clicked-on element prevents the removal of a selection in a different element for me in (Windows) Firefox, Chrome and Edge. No javascript messing with the event is required.
The reason the existing selection is being removed is because the click is initiating a new selection in the clicked-on element, and I figured that setting the property which prevents users from selecting the content of the target element means that the existing selection does not need to be changed.