This is getting too confusing.
Why not just test up front whether there is any needReAggTVE in each expr's tves?
If there isn't one, leave it in the remainingFilters -- that's simple, and it also covers the tves.size() == 0 and the "no mvtable tves" cases.
Otherwise if there IS a needReAggTVE, set m_edgeCaseQueryNoFixNeeded to false
and test whether the expr has more than the one tve and (if it does) whether it has any tve that does not match the mvTable.
If it has a non-matching tve,  expr stays in remainingFilters.
Otherwise, add the expr to aggPostExprs.