The ambiguous name error is caused bevause you have two procedures with the same name, the SelectionChange event might already be in use.

Use this, it will run whenever G12 is changed
[Private Sub Worksheet_Change(ByVal Target As Range)
    Const PW   As String = "secret"
    If Target.Address = "$G$12" Then
        Select Case Cells(7, 8).Value
            Case "Grass Fire", "Timber Fire"
                ActiveSheet.Unprotect PW
                Target.Locked = False
                ActiveSheet.Protect PW
        End Select
        End If
End Sub]