Success!!
Finally got it. Instead of targeting layers, I should have been targeting the paths themselves!
So, call your new data,
// Get the data again
d3.csv("PopulationStats/UK.csv", function(error, data) {
data.forEach(function(d) {
d.date = format.parse(d.date);
d.amount = +d.amount;
});
Nest it
var layers = stack(nest.entries(data));
And update your paths.
d3.selectAll("path")
.data(layers)
.transition()
.duration(750)
.style("fill", function(d, i) { return colours(i); })
.attr("d", function(d) { return area(d.values); });
So simple, but took me 2 days to figure out!