Just an update on this, the number needs to be in the BVD (business voice directory) to be able to be used with the CsCallingLineIdentity command. This only happens with numbers bought/ported into Microsoft.
This is probably by design so you can only present out numbers that you are confirmed to own.
Going to try raise a ticket to see if I prove the numbers are owned by the company I am setting this up for if they can whitelist this for the BVD.
If in doubt you can use the outbound call manipulation on the SBC to amend certain DDI's or all DDI's via a rule on the source username part.