HQL pagination returns same result on different pages - with SQL
If you do not specify any order, by SQL definition databases can return the rows ordered any way they want.

You make it order by nonunique values so each "group" with the same value can be returned in any order - usually this "random" ordering is quite stable but that is mostly incidental as your case shows.

The workaround you found is a good one, use it - if your main ordering is by non-unique column, add a unique column to make the ordering well defined. Usually the ID/PK column is a good one to add, but any other unique column is 
good enough from definition standpoint, only the PK may have some performance benefit in many case (InnoDB implicit clustering as an example) but really what is important is that the combination of columns used for ordering is unique, so even adding a non-unique column may be enough if the resulting ordering is unique.