Here is what i was talking about.
Say for example (these will not be the values in the game just using as an example)
004024EB MOV [EAX+0C],EBX
Was the ghost value (updated screen value), then where did the value in EBX come from.
This is what you have to find out, and dig into the code more, especially above the code.
Perhaps you will see
MOV EBX, [EDX+8C] or something, which then would be safe to assume that the [EDX+8C] is the location of the real value for the life bar, with a bit of code injection you could force a value into it.
Also be aware that the real life bar value might be encrypted and the game uses XOR to get the real value, which then you will take a while to find out.
ALSO
Some life bars in games increase a value when losing life. So 0 would be a full bar, while 100 could mean no health left.
Keep searching
Or you can dump the assembly around that value so I can see what is happening.