Events and the tilemap were rounding extremely low values from "display_x" and "display_y" differently. The tilemap are always rounded up while characters/events are always rounded down.
What do I mean by extremely low values? Because of the formula used to calculate scroll distance (2 ** @scroll_speed / 256.0) the display points can end up being values such as 15.5 pixels.
As mentioned earlier, the tilemap would round this up to 16 while the events would round this down to 15. This would cause events to display 1 pixel away from where they were supposed to.