Okay.. so basically, say we have a link:
$url = \"http://www.site.com/index.php?sub=Mawson&state=QLD&cat=4&page=2&sort=z\";
If I'm reading this correctly, and I may not be. You know which GET you are replacing in a url string? This may be sloppy but...
$url_pieces = explode( '?', $url );
$var_string = $url_pieces[1].'&';
$new_url = $url_pieces[0].preg_replace( '/varName\=value/', 'newVarName=newValue', $var_string );
That's my take, Good luck.