Unfortunately, the "es" is just wrong. You are correct to say that instead of
one can also say:
Es fehlt Brot.
However, the "es" hier is not really the subject, it is just a placeholder that allow the verb "fehlt" to be in second position while preceding "Brot".
Now if we instead consider a subordinate clause, then the verb is in last position:
..., dass Brot fehlt.
Here there is no reason to introduce a placeholder "es", and this would just be wrong.
_* ..., dass es Brot fehlt.
Incidentally, there is a similar construction in which "es" is actually the subject:
Es fehlt an Brot.
Here, "an Brot" is an object, and the "es" remains even if we put it in front:
An Brot fehlt es.
Hence, it would also be present in a subordinate clause:
..., dass es an Brot fehlt.
Or in your example:
Aber wir haben vergessen, dass es zu Hause auch an Brot gefehlt hat.
However, I would not recommend this construction here. It would also more likely mean that there was not enough bread at home.
To be honest, I do not think that "fehlen" is the best choice here anyway. I would probably say something simpler, like:
..., dass wir auch kein Brot zu Hause hatten.
And since the subordinate clause is in past tense, the main clause would probably be past perfect (using the English tense names here, which is not totally correct):
Aber wir hatten vergessen, dass wir auch kein Brot zu Hause hatten.
At least if this describes the situation after having been shopping. If you describe the situation of being shopping, it can be:
Aber wir vergaßen, dass wir auch kein Brot zu Hause hatten.
On the other hand, if you just use perfect tense, the subordinate clause would likely just be present tense, even if the whole thing is in the past:
Aber wir haben vergessen, dass wir auch kein Brot zu Hause haben.
However, actual use of tenses is not that easy, so do not take my word for this part.