Preheat the broiler. Combine the tomatoes, garlic, basil and 1 cup water in a saucepan over medium-high heat. Season with salt and pepper and simmer until slightly thickened, about 15 minutes.
Toss the breadcrumbs, 2 tablespoons parmesan and the Italian seasoning on a plate; season with salt and pepper. Beat the egg in a shallow bowl. Dip the tofu in the egg, then in the crumbs, turning to coat.
Heat 2 tablespoons olive oil in a nonstick skillet over medium heat. Add the tofu and cook until crisp, 3 to 4 minutes per side. Place the bread cut-side up on a broiler pan; spread the bottom halves with sauce, then top with tofu, more sauce, the mozzarella and remaining parmesan. Broil until the cheese melts and the bread is toasted, about 2 minutes.
Meanwhile, heat the remaining 1/2 tablespoon olive oil in the empty skillet over medium-high heat. Add the spinach, season with salt and pepper and let wilt, about 1 minute. Place on top of the cheese and cover with the bread tops.