Why there is a discrepancy between Getorders and GetItemTransactions api while returning <ShippingServiceSelected> ?
The first thing you should check is if the order is created by the seller by sending invoice. You can look for <CreatingUserRole>Seller</CreatingUserRole> in the api response.
For any seller created order, it is expected that GetItemTransactions and Getorders may return different values in <ShippingServiceSelected> node i.e. different ShippingService and ShippingServiceCost.
Since GetItemTransactions returns transaction level information, it may not return the Shipping service and cost specified by the seller while creating the invoice.
It is recommended that sellers should specify shipping information while creating invoices and same would be returned by GetOrders at Order level. That being said, in order to get the correct ShippingService and Cost , always look for <ShippingServiceSelected> at order level in the GetOrders api response.