When used on search.results, paginate tag always returns items_per_page / 4 items behind where its cursor should be per page. This manifests across themes; I tested it on Dawn and Horizon, and they both exhibit this behavior, whether it's in infinite scroll mode or page by page. If you have 24 items on page 1, then page 2 will repeat page 1's six last items, and this keeps going for every page. You can see a merchant complaining about this very problem here.