IANAL.
However, even this was clearly a fault of CX, I still side with CX over OP's concern.
1. Breach of contract is a state law claim. OP's remedy may be limited as CX can be potentially shielded by ADA's state law preemption.
2. A reasonable person will not believe that an airline will upgrade a pax without justification. At the minimum, per OP's word, OP's state of mind in the conversation knew that the upgrade was not free.
3. CX's personnel at the call center was not empowered to upgrade OP for free.
I would simply cut my loss and move on.