Yes, disable Send Original Caller ID in System.
If you set the SIP trunk to use Diversion Header you see that it only populates the header with ALIAS (also called DISPLAY Name) & SIP_Name (also called Local_URI) depending on whether you set it to use the trunk of user SIP settings, not the desired Twinned Number, which you would expect?
INVITE sip:twinned_number@SIP_Server SIP/2.0
Via: SIP/2.0/UDP myPublicIP:48387;rport;branch=z9hG4bKe597e80815060d00094a8155f045fed4
From: <sip

utside_callers_number@myPublicIP>;tag=31df907e55cdb017
To: <sip:twinned_number@SIP_Server>
Call-ID: 93aede3fc775551cc7d19361adcf6f8e@myPublicIP
CSeq: 1763067420 INVITE
Contact: "ALIAS" <sip:Contact@myPublicIP:48387;transport=udp>
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, INFO, UPDATE
Content-Type: application/sdp
Supported: timer
Diversion: "ALIAS" <sip:SIP_Name@myPublicIP:48387>;reason=unknown
Content-Length: 301
v=0
o=UserA 3608107052 3576923007 IN IP4 myPublicIP
s=Session SDP
c=IN IP4 myPublicIP
t=0 0
m=audio 59711 RTP/AVP 8 18 0 4 101
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:0 PCMU/8000
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
If you set the SIP Trunk to use Remote Party ID you notice this line instead of Diversion Header:
Remote-Party-Id:<sip

utside_callers_number@myPublicIP:48387>;screen=yes
However, the "From" Field gets updated with the proper outside caller's ID if you use either method.
So, in summary, ask your provider to either look at the FROM field or Remote Party ID in the header for the desired caller id. But you have to set Remote Party ID in the trunk for the From field to be updated also.
Don't bother with Diversion.
Have been trying forwarding using SS but doesn't work.