Here, "KE_clause free*" is used 11 times in PEG and even when "free*" doesn't follow KE_clause it could.Why not move "free*" into KE_clause itself ? This would make the grammar easier.
"free*" is used ~200 times in the grammar. I'm sure this number can be lowered significantly.