logo.sys from io.sys, i think it can be extracted (though i don't know how)
i wouldn't bother trying to replace it 'in-file'
io.sys is a 16bit file involved in the boot process
the external one is much easier to deal with.
i have no idea why it is squshed like that, thou i suspect it's a weird size due to the machine resolutions that may be avaliable at that stage of boot, or it could be a file/memory size limitation for the same reason (the OS hasn't really started up yet)
as a plus, the higher colour count than XP means you could take any XP bootup sceen you can find and with a little palette work and resizing (plus possibly some animation work) it will probably look just as good.
a proper 256 colour image (with good palette handling) looks better thou.