OK, I see the problem. It was based on a misunderstanding of the GroupedProblemForm.evaluate 
parameters. I thought that the ind[] array would have ind[0] the individual under evaluation, and ind
[1] the opponent. That's how it was when I only had one subpopulation and was running the 
CompetitiveEvaluator.

I switched to MultiPopCoevoluationaryEvaluator, figuring it would do the same thing, but it doesn't. 
Apparently the ind[] array is the size of the number of subpops, and the update[] element that's true 
is the individual under evaluation.

Now the only problem is that it seems that ind[0] is always an individual from subpop 0, ind[1] is an 
individual from subpop 1, and ind[2] is one from subpop 2. What I really wanted was to choose a 
random individual from a random subpop (not in my own subpop).

I guess that means that in my GPProblem's evaluate method, I will have to randomly choose one of 
the non-updated ind's.

It would be nice to be able to choose the number of opponents in the parameters for 
MultiPopCoevolutionaryEvaluator...

--Rob