In short - you can't fit the model you're trying to fit... at least if I'm understanding your data correctly. My understanding is that you have something similar to this:
dat <- data.frame(size = rnorm(27), genotype = gl(9,3), class = gl(3, 9))
> dat <- data.frame(size = rnorm(27), genotype = gl(9,3), class = gl(3, 9))
> dat
size genotype class
1 1.44189249 1 1
2 1.05766532 1 1
3 0.08133568 1 1
4 0.36642288 2 1
5 0.93266571 2 1
6 -0.64031787 2 1
7 0.33361892 3 1
8 0.53315507 3 1
9 0.26851394 3 1
10 0.05062280 4 2
11 -0.30924511 4 2
12 -0.61460429 4 2
13 -0.18901238 5 2
14 0.58881858 5 2
15 0.58625502 5 2
16 0.52002793 6 2
17 1.23862937 6 2
18 -2.02333160 6 2
19 -0.09918607 7 3
20 0.65947932 7 3
21 -0.65440238 7 3
22 0.10923036 8 3
23 0.76845484 8 3
24 -0.24804574 8 3
25 -0.30890950 9 3
26 -2.82056870 9 3
27 0.56828147 9 3
(The main thing I'm looking at is how genotype and class relate - not the actual values for size or the sample sizes for each genotype*class combination)
If each genotype is entirely contained within a single class then you can't separate the genotype effect from the class effect. Hopefully this makes sense to you - if not let me illustrate with a smaller example. First off - since each genotype is entirely in one class we can't fit an interaction - that just doesn't make sense at all. The interaction would be useful if genotypes could be a part of at least two classes because it would allow us to attribute a different effect for genotype based on the class it's in for the observation. But since each genotype is only in one class... fitting a model with interactions is out.
Now to see why we can't fit a class effect just consider class 1 which contains genotypes 1-3. The thing to recognize is that with linear models (and ANOVA is just a special case of a linear model) the thing we're modeling is the conditional means in the different groups - and we try to partition this into certain effects if possible. So any model that gives us the same group means is essentially equivalent. Pretend for a second that the effect for class 1 is c, and the effects for genotypes 1-3 are x, y, and z (respectively). Then the value for the group genotype1/class1 = c+x, for genotype2/class1 = c+y, for genotype3/class1 = c+z. But notice here that we could just as easily said the class1 effect is 0 and then said the effects for genotypes 1-3 are c+x, c+y, c+z (respectively). So class is completely useless in this situation. There is no way to separate the class effect since the genotypes are completely nested inside of class. So we can only fit a model that has separate effects for genotypes if we want to fit a completely fixed effects model.