Correct me if I'm wrong, but I think if you call setHeight(double) on Code128Bean and later you call setMsgPosition(HumanReadablePlacement) the new message position is not taken into account anymore, as this.height is calculated in setHeight(double).
Yes, I can imagine that the behaviour might be a bit unexpected. The problem is that setBarHeight() and setHeight() are a bit conflicting here. At any rate, the height variable keeps the height of the bars. The barcode height itself is always a calculated value. I'm not comfortable changing anything here.