The reason GIMP can open it while PSP complains is most likely because of how the format works. PSPImage files are written in blocks of information. Each block has a very specific format that needs to be followed. In the file format specification it tells 3rd party developers that if they encounter a block they can't use or don't know how to read, to skip over it. GIMP cannot use every feature that's saved into a PSPImage file so it ignores that information. While PSP will try to read and use it all. So if it encounters something unexpected it doesn't try to force it, instead choosing to throw an error and ending the read.
This suggests that the "invalid" parts of the file are in a block or chunk that PSP does read but may not be all that important to the file.
As for getting the file out of GIMP and back into PSP I have three possible options.
1) Export from GIMP as PSD (photoshop document) file. GIMP doesn't use Save As the same way other programs do. If you want to save in another format you need to use their Export options. But PSP should be able to read PSD files unless they include features that PSP can't read properly. But my computer is struggling under the weight of your file so I haven't tested this.
2) Export each layer as a PNG from GIMP and then load them back into PSP. There are ways to make this faster. Such as the following GIMP plugin and drag and drop import method in PSP.
GIMP Plugin - Export Layers -
https://github.com/khalim19/gimp-plugin-export-layers
PSP - Open base layer, then select all the other layers and drag and drop them into the layers palette.
3) Use my Advanced Paste Script to copy and paste layers from GIMP back into PSP.
You're correct that PSP doesn't properly support pasting from GIMP because GIMP stores data to the clipboard in 4 main formats, only one of which PSP supports and that's a regular Bitmap. No transparency supported. But another format it does use is a PNG file. My Advanced Paste script can read these files and import them into PSP.
Advanced Paste Script Download
How this will work is like this you'll grab the first layer, and use the AdvancedPasteAsNewImage script to create the first base layer in a brand new file. Then each subsequent layer you'll use the AdvancedpasteAsNewLayer script. It should work.