When FreePBX reroutes an incoming call to an external destination, that destination doesn’t see the number of the calling party. Fix this by using a Ring group instead of a Misc destination for the external number.
When FreePBX routes an incoming call to a Ring group (or a Misc destination), the called party doesn’t hear the calling party and vice versa. Fix this by routing the incoming call to a dummy Announcement, e.g. half a second of silence, and then to your Ring group.