In cases like that, you can click on the DEBUG option and step through and see where it's derailing. You may be able to fix it yourself! In the cases you found, it's the UNDO statement that is erroring out. We can work around this by telling it to leave if UNDO errors out. But your discovery about inserting rows causing UNDO to error implies that DELETING rows will likewise cause UNDO to error. And indeed it does. So, this is an Achilles heel to the whole shebang. It may be time to consider protecting the worksheet.
<font face=Courier New><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> Worksheet_Change(<SPAN style="color:#00007F">ByVal</SPAN> Target <SPAN style="color:#00007F">As</SPAN> Range)
<SPAN style="color:#00007F">Dim</SPAN> rngCell <SPAN style="color:#00007F">As</SPAN> Range, rngDepends <SPAN style="color:#00007F">As</SPAN> Range
<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> rngCell <SPAN style="color:#00007F">In</SPAN> Target.Cells
<SPAN style="color:#00007F">If</SPAN> rngCell.Formula = vbNullString <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">GoTo</SPAN> SomethingCleared
<SPAN style="color:#00007F">Next</SPAN> rngCell
<SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
SomethingCleared:
Application.EnableEvents = <SPAN style="color:#00007F">False</SPAN>
<SPAN style="color:#00007F">On</SPAN> <SPAN style="color:#00007F">Error</SPAN> <SPAN style="color:#00007F">GoTo</SPAN> RestoreAndLeave
Application.Undo
<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> rngCell <SPAN style="color:#00007F">In</SPAN> Target
<SPAN style="color:#00007F">On</SPAN> <SPAN style="color:#00007F">Error</SPAN> <SPAN style="color:#00007F">Resume</SPAN> <SPAN style="color:#00007F">Next</SPAN>
<SPAN style="color:#00007F">Set</SPAN> rngDepends = rngCell.Dependents
<SPAN style="color:#00007F">On</SPAN> <SPAN style="color:#00007F">Error</SPAN> <SPAN style="color:#00007F">GoTo</SPAN> 0
<SPAN style="color:#00007F">If</SPAN> rngDepends <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN>
rngCell.ClearContents
<SPAN style="color:#00007F">ElseIf</SPAN> rngCell.Formula <> vbNullString <SPAN style="color:#00007F">Then</SPAN>
<SPAN style="color:#00007F">If</SPAN> vbYes = MsgBox("Cell " & rngCell.Address(False, False) & " has dependents, clear anyway", _
vbExclamation + vbYesNo + vbDefaultButton2, _
"Dependents @ " & rngCell.Address(False, False) & " !") <SPAN style="color:#00007F">Then</SPAN>
rngCell.ClearContents
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Set</SPAN> rngDepends = <SPAN style="color:#00007F">Nothing</SPAN>
<SPAN style="color:#00007F">Next</SPAN> rngCell
RestoreAndLeave:
Application.EnableEvents = <SPAN style="color:#00007F">True</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
</FONT>