I see the error:
let Xnew = (((MapSizeUE - 1) * Scale) / MapRangeX) * (Long - Xm)
let Ynew = (((MapSizeUE - 1) * Scale) / MapRangeY) * (Lat - Ym) * -1
you have to use
let Xnew = ((((MapSizeUE - 1) * Scale) / MapRangeX) * Long) - Xm
let Ynew = ((((MapSizeUE - 1) * Scale) / MapRangeY) * Lat) - Ym) * -1