Если вы зациклились, используя ту же сетку RowCount, она не будет работать
for(int i = 0;i<dataGridMaster.Rows.Count;i++)
{
dataGridMaster.Rows.RemoveAt(i);
}
Он не будет работать правильно, потому что во время цикла количество строк изменяется.
Вместо этого присвойте номер локальной переменной, например:
Int loopNum = dataGridMaster.Rows.Count;
for(int i = 0;i<loopNum ;i++)
{
dataGridMaster.Rows.RemoveAt(i);
}