Nearly there I think.
I changed to your code for 'case "ByContractValueLow-High":'

PHP Code:
$sql "SELECT COUNT(*) FROM Intranet WHERE Contract_Number like '{$contractLike}%'";
    
$query "WITH LIMIT AS( SELECT *, ROW_NUMBER() OVER (ORDER BY Annual_Contract_Value ASC) AS 'RowNumber' FROM Intranet WHERE Contract_Number like '{$contractLike}%')   
select * from LIMIT WHERE {limit clause} Order by Annual_Contract_Value ASC"
;  
        break; 
It seemed to work as the ordering on page 1 changed but when I clicked page 2 it changed to order by ID instead by the looks, and it put one in from the front page and left one out completely

So put the echo back in for contract value low high and this is what i got and the ordering below

Page 1:
WITH LIMIT AS( SELECT *, ROW_NUMBER() OVER (ORDER BY Annual_Contract_Value ASC) AS 'RowNumber' FROM Intranet WHERE Contract_Number like 'DOM%') select * from LIMIT WHERE RowNumber BETWEEN 1 AND 2 Order by Annual_Contract_Value ASC

Page 2:
WITH LIMIT AS( SELECT *, ROW_NUMBER() OVER (ORDER BY ID) AS 'RowNumber' FROM Intranet WHERE Contract_Number like 'DOM%') select * from LIMIT WHERE RowNumber BETWEEN 3 AND 4 order by ID DESC

Order is:
Page 1
DOM00004 - 0
DOM00002 - 1000

Page 2
DOM00004 - 0
DOM00003 - 3000