Что-то непонятно, что здесь происходит.
// Вычисляю координаты курсора мыши относительно холста SVG
/*
Вот здесь получаются реальные (экранные) пиксели. А дальше я не вижу,
чтобы ты их переводил в свои сабпиксели (то есть, ты не учитываешь уже
существующее масштабирование)
*/
x = e.pageX - me.getX();
y = e.pageY - me.getY();
/*
Вот где-то здесь тебе надо бы x и у умножить на текущий scale
*/
// Вычисляю смещение относительно мыши и необходимого положения масштабируемого изображения
var offsetX = x - x * scale;
var offsetY = y - y * scale;