This is a slightly less detailed version of @jtownsend approach.
//This code assumes you already know the job is engineered and released.
string job = "271562-1-1";
CallService<Erp.Contracts.JobEntrySvcContract>(je =>
{//Modified from John Townsend's approach
//Get full Job Entry Tableset
var jeTS_Full = je.GetByID(job);
//Grab just the JobHead Row
var rowFromFull = jeTS_Full.JobHead.FirstOrDefault();
//Create a new EMPTY Job Entry Tableset
var jeTS = new Erp.Tablesets.JobEntryTableset();
//Create a new JobHead Row
var newRow = new Erp.Tablesets.JobHeadRow();
//Copy the row from the full tableset.
BufferCopy.Copy(rowFromFull, newRow);
//Mark the job not engineered.
newRow.JobEngineered = false;
newRow.RowMod = "U"; //<--- Mark updated
//Add to new JobEntry Tableset
jeTS.JobHead.Add(newRow);
//Unengineer... This will unrelease as well.
je.ChangeJobHeadJobEngineered(ref jeTS);
je.Update(ref jeTS);
//Make changes
newRow.PartDescription = "That's some bad hat Harry.";
//Re-Release... This will also mark it as engineered.
newRow.JobReleased = true;
newRow.RowMod = "U";
je.ChangeJobHeadJobReleased(ref jeTS);
je.Update(ref jeTS);
});