I don't see an issue with your contrast statement aside from the fact that it is not estimable. The issue appears to be that your contrast is not estimable because there are no combinations of the rows of your model's X matrix that produce the contrast vector you want. In other words, the beta coefficients in your contrast vector that have non-zeroes cannot be estimated jointly. If you want to compare the mean yield by levels of iron then using something like: lsmeans /pdiff; will do that. Just be aware that LSMEANS is an average effect (the terms in the underlying contrast vector applied to the model beta coefficients are, basically, proportions calculated using all 54 records.) The SLICE statement would let you estimate (a population average effect) of the yield by iron levels for some specified values of the terms with which IRON is interacted.
... View more