Yes, both sentences are grammatically correct.
They both mean that the speaker really did leave "her" in the past, but if the contrary were true, the speaker and "her" (ie she) would be celebrating their 7th anniversary on the day after the speaker utters this sentence (which day is tomorrow).
Notice, first, that this is a past unreal condition. Different folks call it different things; you call it a third conditional; the textbook English Grammar: A University Course (3rd edition) calls it a "counterfactual conditional clause"). Click on Page 265 of that link.
As for which version (would be or would have been) should be the better option to go with, it really depends on what you want to say. Note that page 266 of the same textbook says
The counterfactual construction [would/should/could + have + past participle of full verb]...can occur in other discourse contexts such as expressing regret or reproof at something that didn't take place.
and gives the example
It would have been a pleasure to meet your son. (but we didn't meet him)
This same sense of expressing regret or lament over something that didn't take place is one reason you might choose would have been in your sentence. If you did not want to express this, you should choose would be.
As for the word tomorrow in the main clause of a past unreal conditional, it's working the same way as in
If we had had the opportunity, it would have been a pleasure to meet your son tomorrow when we were all in Phoenix tomorrow, but I doubt I'll be over the plague by tomorrow and will need to stay in my room tomorrow. Thus my being sick prevents such a meeting tomorrow.
The whole (conditional) sentence is written about the future–from the point of the past. We often do this in English, as in
I was going to meet your son tomorrow, but I got sick
and
Tomorrow was going to be our 7th anniversary, but I left her.