Hey there,
That anchor point may be causing your strange results. Under 'standard' use, anchor point values go from 0 to 1. Try 1,0 for the anchor point for starters and go from there. As it looks, you may be wanting the anchor point to be on the bottom right corner of the health bar?
Here's what I'm doing for a super simple health bar for my little guys:
(self is a CCSprite subclass of my enemy type & whitePixel is exactly that.. a 1x1 white pixel that I stretch and color to show current health)
healthBar = [CCSprite spriteWithSpriteFrameName:@"whitePixel.png"];
[healthBar setScaleX: [self boundingBox].size.width ];
[healthBar setScaleY:2.0f];
[healthBar setAnchorPoint:ccp(0.0f,0.0f)];
[healthBar setColor:ccGREEN];
// health bar will not rotate or scale if the enemy (parent) does ..
healthBar.honorParentTransform &= ~(CC_HONOR_PARENT_TRANSFORM_SCALE | CC_HONOR_PARENT_TRANSFORM_ROTATE);
[healthBar setPosition:ccp(0.0f, -([self boundingBox].size.height / 2.0f) )];
[self addChild:healthBar];
HTH,
-Mark