Most 40,000 Hz piezo transducers are high-Q, which means that once you get them oscillating, changing amplitude or phase takes awhile. Or it requires an extremely large transient. My measurements of a cheap piezo transducer revealed an equivalent circuit like this:

simulate this circuit – Schematic created using CircuitLab
The components L1, C1, and R1 are electrical equivalents of the piezo's motional parameters, and affect the amplitude of the transmitted wave. L1 and C1 resonate at a frequency slightly below 40000 Hz. C2 is an actual capacitance between the piezo plates.
If you reduce the BPSK modulation data rate to something much slower, you should see the phase change in your receiver, because both transmitting and receiving transducers have a chance to change phase before the next baud period. Be aware that a piezo receiver circuit likely has similar high-Q characteristics.
One solution here is to de-Q both transmitter and receiver piezo transducers, so that their increased bandwidth can accept a higher data rate. But you may find that sensitivity is compromised. Another solution may be to apply a very large transient at the beginning of each phase-change, to overcome the piezo's built-up motion. This won't work at the receiving end.
An attempt at improving transient response with this model of piezo used this circuit with some limited success:

simulate this circuit