The account ownership is the structural problem here, and it overrides the reporting argument for now. When the account sits in their name, you cannot pull the raw data yourself, you cannot take the history with you if you leave, and you have no independent verification of what they are showing you. That is the leverage they used, possibly without thinking about it strategically, possibly not.
On the economics: your read is correct. CTR is a pre-conversion metric. If the page with lower CTR was producing cheaper leads that converted to conversations at a higher rate, the agency optimized for the wrong variable, which is a measurement error dressed up as a decision. The relevant metric in a motivated-seller campaign is cost per qualified conversation, possibly cost per contract, depending on how deep your attribution runs. CTR is a diagnostic, not a result.
The contract language you want going forward is specific. Clauses to require: account ownership in your name or business entity at account creation; read-only access granted to you immediately, not on request; raw data retention for all ad sets, including paused and deleted campaigns, for the duration of the engagement; reporting cadence defined as weekly with access to the underlying platform data, not a summary deck; and the right to export the full account on termination without restriction. Some agencies will push back on the account ownership clause. If they push back hard, that tells you something.
For attribution, you want a third party handling call tracking, something like CallRail sitting outside the agency's reporting stack, so you own the conversion data independently regardless of what they present.
The question about whether this is incompetence or story protection is worth holding. Both produce the same outcome for you, and the contract structure above addresses both. A licensed professional who handles agency agreements can draft the language with teeth, particularly around data access and termination rights.
What does your current contract say about account ownership on termination? That clause determines how much pressure you actually have right now.