I should add – I'm not sure the problem is only that there are duplicate ids. In my local app I've added more records and I don't always get duplicate ids (e.g. if all the ids in the XML are >10) but I still get alternate blank rows.
Thanks for the pointers – I didn't see any javascript errors in Chrome so I assumed it was 'ok'. Anyway, I've cleaned it up now (at the same URL) – would you be able to take another look? I still have the same problem.