zoo series should have unique index values so if you are going to convert from Date to yearmon then the series should be aggregated to keep the index values unique. For example,
lapply(xy.list, aggregate, as.yearmon, mean)
or
lapply(xy.list, aggregate, as.yearmon, function(x) x[1])
Another possibility if its important not to aggregate is to convert it to an xts series:
library(xts)
lapply(xy.list, function(x) xts(coredata(x), as.yearmon(index(x))))