After months of negotiations and disruptions to south-east train services, Queensland Rail has reached an in-principle agreement with three unions.