PriorityQueue only claims to make the first entry in correct order. If you iterate over the PriorityQueue you can see all but the first element in any order and it may change as you add/remove entries.
From the Javadoc for PriorityQueue
The Iterator provided in method iterator() is not guaranteed to traverse the elements of the priority queue in any particular order. If you need ordered traversal, consider using Arrays.sort(pq.toArray()).
If you need correct ordering at all times I suggest using TreeSet.
NavigableSet<MyType> orderedSeedQueue = new TreeSet<>(new MyComparator());
// add elements
while(!orderSeedQueue.isEmpty()) {
firstItem = orderSeedQueue.pollFirst();
However, depending on your use case it may be simpler to sort them.
List<MyType> types = ...
Collections.sort(types, new MyComparator());
for(MyType t : types) { // in sorted order