Preheat oven to 350° F.
Bring a large pot of salted water to boil. Add the shells and cook until al dente, 1 to 2 minutes less than the package directions. Drain well, rinse briefly under cool water to stop the cooking, and arrange on a tray so they do not stick together.
In a large skillet, heat the olive oil over medium heat. Add the spinach and cook, stirring, until wilted and most of the moisture has evaporated, 3-5 minutes. Add the garlic and cook until fragrant, about 1 minute more. Remove from heat and let cool slightly. If it's very wet, squeeze out excess liquid.
In a large mixing bowl, combine the ricotta cheese, eggs, Parmesan, parsley, basil, salt, and pepper. Stir gently until thoroughly combined.
Fold in the cooled spinach mixture until evenly incorporated.
Spread about 1 to 1 1/2 cups marinara sauce over the bottom of a 9x13-inch baking dish.
Using a pastry bag, zip-top bag with one corner snipped, or a spoon, fill each shell with 2-3 tablespoons of the ricotta mixture. Arrange the filled shells, open side up, in a single layer in the baking dish. You may need a second, smaller baking dish if all the shells do not fit into one dish in a single layer.
Spoon the remaining marinara sauce over the shells. Sprinkle with the mozzarella and additional Parmesan, parsley, and basil, if desired.
Cover the dish tightly with foil and bake until heated through and the sauce is bubbling around the edges, about 30 minutes. Remove the foil and continue baking for 5-10 minutes, until the cheese is melted and beginning to brown.
Let stand at room temperature for 10 minutes before serving. Garnish with additional Parmesan, parsley, and basil, if desired. Serve warm.