При нажатии на кнопку для добавления строки, появилось
Event thread: click
productnull
Такое впечатление что и вправду id корявые присваивает... Вроде бы все верно:
var counter = document.getElementById("counter");
берет из
echo '</table><input type="hidden" name="counter" value="2" /></form>'."\n";