Ok I found the issue, there isn't actually any corruption of the data, the issue is just that the "has overlay" flag for every sprite are being set true, so it makes the sprite set appear corrupted.
If you select all the sprites (ctrl+a) and hit the "Has Overlay" checkbox you can clear all the overlay flags. You helped me find another problem though, the binary import (sprites) feature is meant to offer a format selection dialog to the user before loading the binary and it isn't working in the C++ version.