Remember that SetDefaultPrinter is a little odd as it uses the actual printer NAME and not the SHARE NAME. So even if they're shared as the same name, if the actual printer name is not the same it would not work. So verify this.

Also...I just noticed that I have an extra "\" in the code I posted, since I didn't see that you already included it in the NewServer variable. Try this code, with a couple extra output lines for troubleshooting, and the extra "\" removed.

 Code:
$NewServer = "\\NEW-SERVER\"
$OldServer = "\\OLD-SERVER\"
$defPrinterName = GetDefaultPrinter()
? "Default printer found as: " + $defPrinterName

$Cnt=0
$SubKey= "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Printerports"
$PrintName=EnumValue ($SubKey, $Cnt)
While $PrintName <> ""
       If Left($PrintName, Len($OldServer))=$OldServer
       		$NewPrintName = $NewServer + SubStr($PrintName,Len($OldServer) + 1,Len($PrintName))
        	? "Deleting; " $PrintName "..."
        	$ = DelPrinterConnection("$PrintName")
        	? @SERROR
        	? "Connecting; " $NewPrintName "..."
        	$ = AddPrinterConnection("$NewPrintName")
	        ? @SERROR
	Else
        	$Cnt= $Cnt + 1
	Endif
	$PrintName=EnumValue ($Subkey, $Cnt)
Loop

? "Setting default printer to: " + $NewServer + $defPrinterName
$ = SetDefaultPrinter($NewServer + $defPrinterName)

function GetDefaultPrinter()
    $GetDefaultPrinter = join(split(readvalue("HKEY_USERS\"+@sid+"\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device"),',',1),'')
endfunction