Ok, so I ended up nuking the whole thing and starting from scratch. 
Luckily I had only restored little enough data that I could back it up 
this time!

Anyway, I now have two separate... uh... I'm not sure what the technical 
term is. There's one pool but it has two raidz1 arrays of four drives each 
(I'd have preferred raidz2 but that would lose me about 4 terabytes). I 
did also create the array with ashift=12.

So far performance has been fantastic, and I've had zero errors, checksum 
or otherwise (knock on wood). The no checksum errors makes me think 
ashift=12 was a good idea.

Thanks to everyone who offered suggestions!

--