Seu desbalanço é por diferentes números de repetições? se for o caso você pode analisar normalmente utilizando a função aov e realize a anova tipo III
install.packages("car")
library(car)
library(lsmeans)
Anova(modelo.aov, type="III")
Desdobramentos deverá ser feito, caso haja efeito significativo da interação. Veja pacote "phia" para desdobrar interações
Quanto ao teste de média. Isso vai muito das características da resposta que você está medindo. O teste de Duncan é um teste pouco conservador (Tende a encontrar mais efeitos significativos) porém ele não controla a a taxa de erro familywise (A probabilidade de ter no mínimo um erro de inferência para um grupo de k comparações). Em outras palavras se você realizar 20 comparações ao nivel alpha de 0,05 você espera obter no máximo 1 erro de inferência (0.05 *20), como Duncan não controla essa taxa de erro você poderá encontrar mais efeitos significativos do que espera (2 ou 3 em 20).
Tukey por outro lado é um teste bastante conservador e que garante que a taxa de erro de inferência será no máximo igual ao alpha (nível especificado 0,05 ; 0.01 etc). Por causa disso ele tende encontrar menos efeitos significativos.
Testes como o Duncan são mais aconselháveis em casos onde a resposta
medida possui alta variância (respostas instáveis) e assim a chance de cometer erro tipo II
(Erroneamente aceitar H0) á alta. Não sei se esse é seu caso.
A discussão sobre qual teste utilizar é complexa e obviamente tem de levar em consideração muito mais fatores que os levantado aqui. Acredito que outros colegas com uma visão mais profunda contribuirão muito para essa discussão.
Att