I haven't analyzed your code in-depth, but anyway:
1. Not a flame/criticism/judgement/smack on the head with a rolled up newspaper, but... Your code should be placed in an expandable code box (although we all slip up from time to time), especially this quantity of code. How to do this: Place "code" in square brackets, "[]" at the beginning of your code and "/code" in square brackets at the end, eg:
You'll notice the post window actually has a button for this.
2. Next, more to the point lol, you are printing to / drawing to a surface that has become invisible thanks to the use of the BACKDROP and SPRITES. You need to draw to a bitmap and then sprite those images to the screen for best results. Checkout the DBPro help section on Bitmaps, it's fairly well explained. To summarise it, a "bitmap" in this case is just a surface to draw on. It is not stored on the HDD unless you save it.
3. You could just make two sprites and stretch the one to indicate the current HP over the other which will represent the max HP.
Hope this helps. If I've said anything that's not understandable, feel free to ask as I'm not always good at explaining stuff (or so say many of my friends).