Your code seems to work fine here. Not to poke you in the eye with the obvious, but unfortunately the "trigger" is the act of exiting the content control. Therein lines the continuing stupidity of Microsoft (after over 15 years) of not have a content control "change" event.
Fortunately with Dropdowns, there is a "pseudo" change event called the ContentControlBeforeContentUpdate event. You can use it and XML mapping to do what you want. Attaching a demo file, but here is the code:
Code:
Private Sub Document_ContentControlBeforeContentUpdate(ByVal ContentControl As ContentControl, Content As String)
Dim oCXP As CustomXMLPart
Select Case ContentControl.Title
Case "ROLE"
Set oCXP = ContentControl.XMLMapping.CustomXMLPart
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:RPT[1]").Text = "false"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:DS[1]").Text = "false"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:SPT[1]").Text = "false"
Select Case Content
Case "A"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:RPT[1]").Text = "true"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:DS[1]").Text = "true"
Case "B"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:DS[1]").Text = "true"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:SPT[1]").Text = "true"
Case "C"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:RPT[1]").Text = "true"
Case "D"
oCXP.SelectSingleNode("/ns0:CC_Map_Root[1]/ns0:SPT[1]").Text = "true"
End Select
Case Else
End Select
End Sub