Paging in SQL Server: Is an order by clause required? (currently, rows are being missed)
Using TOP(n) without ORDER BY is going to return you n rows in whatever way Sql Server cares. As per the documentation:


  If the query has no ORDER BY clause, the order of the rows is arbitrary.


In addition, there is no WITH TIES. Consider using it too, lest you might miss some rows too:


  WITH TIES  Specifies that additional rows be returned from the base
  result set with the same value in the ORDER BY columns appearing as
  the last of the TOP n (PERCENT) rows. TOP...WITH TIES can be specified
  only in SELECT statements, and only if an ORDER BY clause is
  specified.
  
  The returned order of tying records is arbitrary. ORDER BY does not
  affect this rule.


Consider update to Sql Server 2012/2014. You could enjoy new features like automatic paging with OFFSET FETCH.