What I'm showing here is when you move, the collision box and the player aren't 'sync' together. There seems to be a slight delay of the sort.
doing some testing, I was kind of able to fix this. However after doing so, when you move forward, either the player or the screen kind of moves a bit shaky. This was an issue from before thought to be 'fixed' now, so I don't know what else to do.
I don't think it's really a problem. In MMR the collision boxes and sprites themselves have this problem, although the player can't see it, and no one has complained about it after a month of the game being available for download.
If you really want the problem alleviated, did you try using a fastloop to set the position of the player sprite? What I did was set the player sprite's position to the collision box instead and had all the movement attached to the collision box and I scroll the screen based on the collision box rather than the player sprite.
Do you mind if I add you on MSN Messenger? I can perhaps help you out with things a little since I use MMF2 as well.
Also, as for the Wily sprite, I think the NES did it that way because of the sprite palette limit on the NES as others mentioned. Although, you aren't working with NES limits.
The sprites in the sheet however wouldn't be possible on the NES, unless you used an additional palette for them, because sprites on the NES can only have 3 colors per palette plus an additional transparency color.