Probably the data are incomplete or invalid, because this error means that Single cannot find any row.
To skip this step, try something like this:
var s = db.tblSWATScores.SingleOrDefault(e => e.SurveyID == tblswatwaprecipitation.SurveyID && e.VarName == "precipTotal");
if( s != null) s.Value = precipTotal;
Check other Single calls too.
But also clarify why it does not return the items.