Set redisplay
attribute to false
.
<p:messages ... redisplay="false" />
This way it won't redisplay messages which are already displayed before. One -obvious- requirement is that the <p:messages>
component itself is placed after all those <h|p:message>
components. If you actually need to position it visually before the <h|p:message>
components, make use of CSS and perhaps JS to reposition it.