Don't paste the sprite. Position it at 0,0 (sprite bgsprite,0,0,bgimage), and that's all. Pasting it will probably cause lag.
Any sprites with a higher z priority(any sprites created after the bg sprite, or any sprites set to a higher z priority) will display on top of the bg sprite.
For text, it is real simple to make sprites out of them so that they too will display on top of the bg sprite.
Basic Text to Sprite Function:
function maketextsprite(txt as string)
create bitmap 1,text width(txt),text height(txt)
text 1,1,txt
get image 1,1,1,text width(txt),text height(txt)
delete bitmap 1
sprite 1,0,0,1
endfunction
I did not make this sample function dynamic at all, so to keep it simple just to get to the point. But you should allow it a few perimeters to make it work:
1. the string to use
2. the bitmap to draw to(or you could use an inside function call to a free bitmap locater function)
3. the image to use(or you could use an inside function call to a free image locater function)
4. the sprite to use(or you could use an inside function call to a free sprite locater function)
Optional:
4. text font
5. text color
6. text bg color(rgb(0,0,0) for transparet text)
Lastly, you would want this function to return the sprite that was created.
I believe that you are trying to make this too difficult...which I fully understand, having been new to the language before too.