Я подозреваю, что вы хотите, чтобы последняя строка была:
fsource.MoveTo(Server.MapPath("~/PuchaseOrder/" + fName));
Ваш текущий код получает только имя файла в виде строки и манипулирует этой строкой. Вы хотите манипулировать самим файлом.
EDIT:
Вы уверены, что ~/PurchaseOrder/
существует?
Попробуйте:
string originalPath = Server.MapPath("~/PurchaseOrder/" + lblhideid.Text);
FileInfo fsource = new FileInfo(originalPath);
if (fsource.Exists)
{
string newName = string.Format("Z-{0:MM-dd-yyyy}-{1}.{2}",
System.DateTime.Now,
saveConsultantID,
fsource.Extension);
string newPath = Path.Combine(fsource.DirectoryName, newName);
fsource.MoveTo(newPath);
}