Use screenID% = 99 .... then it works
Unfortunately CREATESCREEN ID%, ID% is limited from 0 to 31, so going above 31, is the same as -1, which is the backbuffer, so 99, is basically just normal rendering to the screen, not buffering it to a sprite. This can be illustrated by adding a CLEARSCREEN before the first X_MAKE_2D. If it was copied properly via an FBO it should still reside within the spriteID% which unfortunately it doesn't, and drawing the sprite should show the screen but as it was USESCREEN 99 (same as -1) , its simply drawing to the screen and not drawing/buffering it.

TBH I'm kinda surprised it did not throw an error.
Its good to know that this was working at some point (version) so maybe its an easy fix for Gernot?