Edit, does not fix the flickering fruit, fixes everything else but, oops
I think the flickering corruption is coming from your "BlockScroll" commands. It interferes with the UnBuffer db command. If there is fruit (or your main player) is on that line when the blocks get copied from it, it also copies bits of the fruit or main player not just the platform to the reverse bitmap.
Maybe instead of using 'BlockScroll' command wait until the next frame and draw the same line again for the reverse bitmap. (you may need to read the data into an array as you will need that data twice).
Sorry it's hard to explain. My teaching skills are as bad as my grammar and spelling
To fix the bug where mouse is stuck half way into a platform..
delete the line:-
If ply(n)\y MOD 2=0 Then ply(n)\y=ply(n)\y-1
and replace with
If Point(ply(n)\x,ply(n)\y) Then ply(n)\y-1
p.s. That will only work correctly when the flickering problem (above) is fixed.