Waratahs fight back to snatch late win