A Cairns man has been charged over a crash that put his 16-year-old female passenger in hospital and shut the Bruce Highway for several hours.