Due to the nature of genetic searches, your results may vary with each optimization run. This does not mean that they are invalid - there can be many satisfactory sets of inputs for a given strategy - it only means that the parameters you used for the search did not cover the entire fitness landscape each time. Whether your search finds all maximums depends to a large extent on the number of individuals in the initial generation. Try increasing this number for highly complex landscapes.
Genetic searches search by approximation - there is a tradeoff between speed and thoroughness. In most cases the tradeoff is more than satisfactory, since this is the only way possible to obtain representative samples from many parts of the fitness landscape in a practical length of time. Genetic optimizations are not capable of discovering a best-case single case solution isolated on the fitness landscape without some degree of gradually approaching fitnesses. If there are not many clues pointing in that direction, it probably won't find it. Ultimately, those single-maxima solutions are not desirable in strategy optimizations anyway, since they are inherently unstable and are usually a curve-fitted result, not a result of real-world relationships exploited by your strategy.
Running the optimization several times and obtaining similar results each time can give you a level of comfort that you have adequately scanned the fitness landscape.