Bring a large pot of salted water to boil. Cook pasta shells according to package directions. Drain, rinse with cold water, and set aside.
Heat olive oil in a large skillet over medium-high heat. Add the onions and cook until softened, about 5 minutes. Add the sausage to the pan, breaking it into smaller pieces as it cooks. Cook until the sausage is completely cooked through and no pink remains, about 5 minutes. Add the garlic and cook until fragrant, about 30 seconds. Remove from the heat.
In a large mixing bowl, combine the egg, ricotta, spinach, 1/2 cup of the Parmesan, basil, bread crumbs, salt, and pepper. Stir together to combine. Add the cooked sausage mixture to the bowl and stir until evenly mixed.
Preheat the oven to 375 degrees F. Spread a thin layer of the chopped tomatoes in the baking dishes (either three 8×8? pans, or one 9×13? and one 8×8?). Stuff each shell with some of the sausage and cheese mixture, and arrange in the baking dishes, open side up. Spread the remaining tomatoes over the top of the pasta shells.
Cover the pans with foil and bake for 30 minutes, until hot and bubbling. Remove foil and sprinkle with remaining Parmesan cheese. Bake, uncovered, for 10 more minutes.