В настоящее время ваш код захватывает все MeasId и увеличивает максимальное значение. Попробуйте установить фильтр where до метода select.
var measid = dataContext.MeasResults.Where(mr => mr.MoldID == id).Select(a => a.MeasId).Max() + 1;
Идея здесь в том, что вместо выбора максимального значения MeasId из всей таблицы вы сначала отфильтруете все записи, кроме измерений для MoldID, который вы записываете.
string id = ""; string plane = ""; int pos = 0; int dist = 0; double apert = 0;
id = comboBMouldID.SelectedValue.ToString();
plane = comboBSurface.SelectedItem.ToString();
pos = Convert.ToInt32(txtTravelPos.Text);
var tmpRecord = dataContext.MeasResults.Where(mr => mr.MoldID == id).OrderByDescending(mr => mr.MeasId).FirstOrDefault();
int measid = tmpRecord != null ? tmpRecord.MeasId + 1 : 1;
...
Оператор tmpRecord фильтрует таблицу MeasResults для всех записей с MoldID, равным выбранному идентификатору. Затем мы сортируем их в порядке убывания, используя MeasId в качестве столбца сортировки. Наконец, мы берем верхнюю запись или нулевую запись, если ее нет. Во второй строке сначала проверяется, что запись не равна нулю, затем она измеряет значение этой записи и увеличивает его на единицу. Если запись равна нулю, мы присвоим значение 1.