1 round Feistel with birthday attack
Assuming the Hash function is "good" (say it obeys the random oracle model, for concreteness) its restriction to 128 bit inputs should behave as like a random function.

This means that it will "miss" roughly a fraction $(1-e^{-1})$ of the $2^{128}$ binary strings in its range. Also, it will, with high probability have a point $y$ in its range (see, e.g., Mitzenmacher's Probability and Computing book), such that $$|H^{-1}(y)|\approx \frac{\log n}{\log\log n}:=M,$$
where $n=2^{128}.$

In fact, iterating this argument, since the remaining points in the range can be considered to come from a random function on $2^{n}-M$ points which would then have a point in its range with inverse image size $$\approx \frac{\log (n-M)}{\log\log (n-M)}$$ and so on.

This is probably not "almost one to one", but it looks like your attack may work with some fixed probability bounded away from zero, if you use multiple P/C pairs to deduce intersections of possible key sets corresponding to the clustered points in the range.