Unlocking the Potential of Unlabeled Data in Semi-Supervised Domain Generalization