Definitely take a night off of Zurich and add it it to your Berner Oberland stop. That would be 3 nites Luzern, 4 in the BO, and one in Zurich (or stay your last night in Luzern as suggested above, if your flight out of Zurich airport departs 11 am or later.
Or, if you prefer to reduce the number of hotel changes, and you flight meets the above timing, you could reverse the order of travel and head to the BO first, then to Luzern, and take the train right into the airport from there.
As for Lauterbrunnen versus Grindelwald, that is a matter of personal preference. Both villages are in the valley,( adjacent valleys) and neither is car-free like the villages above the Lauterbrunnen Valley ( Mürren and Wengen).
Both Grindelwald and Lauterbrunnen offer excellent hikes, and at least one popular one (the Männlichen to Kleine Scheidegg walk) that one can approach from either village, as it traverses the ridge between them. For a variety of other hikes, I would give a slight edge to Grindelwald, especially if you want longer, more strenuous ones. But the North Face trail above Mürren is also one one of my personal favorites, making Lauterbrunnen a good choice for shorter stays.
I prefer the views of the Eiger and other rugged peaks one sees from Grindelwald, but Lauterbrunnen offers waterfall views, and the cliffs rising above the valley make it resemble Yosemite.
If a ride up the Schilthorn is on your list, Lauterbrunnen is much closer to the cablecar for that. The Jungfraujoch railway can be accessed from either village, probably for the same $$$$.
Grindelwald, being larger, has more shops and stand-alone restaurants, and a small pedestrian-only zone. It also has more and fancier hotels (4-star types) if that suit your travel style.