If the distance calculation in the working receiver code is correct float distancia = t1*0.034;
then the formula in the non-working receiver looks odd
float distancia = t1*((331.4+0.61*T)/1000);
For any positive value of "T", the multiplier in the second example is at least 10x greater than the first example.
I'd check the source of that equation. Moreover, I would print the values going into the formula "t1" and "T" to make sure the measurements look plausible.