Randall, your code snippet looks more or less correct.

	- landPortrayal's field is
	- landPortrayal's simple portrayal is a wrapper on PotatoProducer
	- potatoDistributorsPortrayal's field is potatoDistributors.land2
	- potatoDistributorsPortrayal's simple portrayal is a wrapper on PotatoDistributor


FIRST this is weird:
	         PotatoProducers potatoProducers = (PotatoProducers) state;                   
	...	 PotatoDistributors potatoDistributors = (PotatoDistributors) state;

Are PotatoProducers and PotatoDistributors both interfaces?  Is there a reason why you're casting the state (a SimState) into two different things?  


> The code checks out, but gives a runtime "potatoDistributors cannot be cast to potatoProducers" error. 

This is not an actual exception, and in fact it *cannot* be an exception (neither "potatoDistributors" nor "potatoProducers", as spelled, are classes).  Could you provide us with the actual error and stack trace?

Is it possible that you have put a PotatoDistributor object in your field, which is supposed to only hold PotatoProducers?  This would produce a class cast error when the portrayal tries to draw it and you try to cast it to a PotatoProducer.