Figured it out: the text was being drawn to the background buffer before the background and sprites, so it was immediately overwritten. I wrote a little text handler that makes an image from a bitmap that you can write text to and displays it. It's not perfect, but it gives you an image of the text that can be displayed as a sprite. Just pass it a string and an image of that string will be saved as image number 90. Then you can use dbSprite() in your main loop to make it draw wherever you like.
void TextTest(char * test)
{
dbCreateBitmap(2, 16*dbLen(test), 30);
dbCLS(dbRGB(255, 0, 255));
dbText(0, 0, test);
dbGetImage(90, 0, 0, 16*dbLen(test), 30);
dbDeleteBitmap(2);
dbSetCurrentBitmap(0);
}