Hurrah! Problem solved.
I applied the series.patch patch (using -R) (available from forums.tivocanada.com) to xmltv2tivo, and recompiled. The generated text slices now contain Series data records, and the resulting writeguide slices are correctly downloaded and interpreted by the Tivo.
Thanks timmy and thomson for the good advice, especially thomson for spotting that the Series records were missing.
David