I'm doing a little more digging, and I think your engine is applying rotation after upscaling, for one. Take for example, the skeleton in shackles in the background of this screenshot on your page.
I can see the blockiness of the sprite, but it appears to have been rotated to simulate having a broken manacle. As a result, the sprite stops aligning with the 4x4 blocks needed for an upscale, If we zoom in, it looks like this.
See how the 4x4 pixel blocks have broken down? There's a lot of angles that adjust one pixel at a time, meaning the sprite is treating the 640x576 output window as unscaled.
Hope this clarifies a little. I have a bad habit of being too verbose and opaque when trying to explain things.