Can you post your page tags that are causing this?
You should be aware that there is an attribute specific to <h:messages> that is not available in the component-specific <h:message> tag: . This will display only messages that are NOT queued for a specific component. However, if you are not using this attribute, and you have component-specific messages as well, it will display both...once with the <h:message> tag, and once with the <h:messages> tag. I don't know if that's the problem, but I've had similar behavior caused by that default behavior.
"You learn how to avoid mistakes from experience. Unfortunately, you only gain experience by making mistakes".
I've done the same thing a number of times, often when I am copying code and adding some functionality. I don't carefully check to see if I am duplicating something that was already happening in the copied code.