I think the problem is that, by replacing an Image with a Surface, you're directly injecting a Surface object into a place where minisphere expects there to be an Image object. Thus, your sprite will now have an array of sprite frames that looks like [Surface, Image, Image, Image, ...]. Thing is, the map engine, or really, minisphere itself, wouldn't really be able to handle that because it internally just expects an array of just Images. It's actually pretty interesting that original Sphere didn't have an issue with this (I guess it didn't care about the type, just the available properties and methods).

Try creating a copy of this.images instead of directly referencing the images in the sprite.

Edit: just to be clear, the solution is basically to store the newly created surface in its own variable rather than overwriting the Image.