It is because of the facing direction. On the spritesheet where you have the "down" image, there are probably other rows that are empty.
I don't really understand the reasoning here, but Ace and MV do not always change the direction of the sprite to match the image you select on the event page. It has something to do with what direction was used for the image on the previously-active tab, and/or what direction the event was facing when you interacted with it, before changing tabs.
Try this - either before or after you turn on the self switch, do a move route to change the event to face the correct direction for the "down" sprite (if the down sprite is on the first row, turn down, if it's on the second row, turn left, if it's on the third row, turn right, and if it's on the fourth row, turn up).
This might solve the problem, or might partially solve it, but leave you with the wrong sprite for just a fraction of a second.
To overcome this issue, I actually changed the code to always face in the direction dictated by the sprite on the event page, but if you were to do something like this with a half-completed project, you would end up with unexpected/unwanted results in other places.