Yes! Caterpillats do eat marigolds. In fact, they are often used as a trap plant to keep caterpillars away from vulnerable crops with marigolds being used sacrificially.