Sorry for pulling an 11 year old post but this is what comes on google when you search for NPC's not showing health bars.
It doesn't have to do with L2Monster, but in class AbstractNpcInfo there is this line
_isAttackable = _npc.isAutoAttackable(attacker);
Which checks if the npc instance is attackable. If this is true, than later under writeImpl()...
writeD(_npc.getObjectId());
writeD(_idTemplate + 1000000);
writeD(_isAttackable ? 1 : 0);
If you have a custom class that copies something that was originally L2Npc, or you want all bars visible or not, than you can modify the third writeD. 1 will show the health bar, 0 will not. It will also change the cursor from the sword icon to the conversation one.