So assuming that COMPONENT can repeat, and you want to just select the COMPONENT nodes where NAME LIKE '%Detection%', the following should work:
DECLARE @xml xml = '<SC_ROOT>
<COMPONENTS>
<COMPONENT>
<NAME>Status A Detection</NAME>
<PROPERTIES>
<COMP_ENABLED>True</COMP_ENABLED>
</PROPERTIES>
</COMPONENT>
<COMPONENT>
<NAME>Status B Other</NAME>
<PROPERTIES>
<COMP_ENABLED>True</COMP_ENABLED>
</PROPERTIES>
</COMPONENT>
<COMPONENT>
<NAME>Status C Detection</NAME>
<PROPERTIES>
<COMP_ENABLED>True</COMP_ENABLED>
</PROPERTIES>
</COMPONENT>
</COMPONENTS>
</SC_ROOT>'
SELECT X.Component.query('.')
FROM @xml.nodes('/SC_ROOT/COMPONENTS/COMPONENT') as X(Component)
WHERE CAST(x.Component.query('NAME/text()') AS NVARCHAR(100)) LIKE '%Detection%'
output:
<COMPONENT><NAME>Status A Detection</NAME><PROPERTIES><COMP_ENABLED>True</COMP_ENABLED></PROPERTIES></COMPONENT>
<COMPONENT><NAME>Status C Detection</NAME><PROPERTIES><COMP_ENABLED>True</COMP_ENABLED></PROPERTIES></COMPONENT>
That will get you the raw XML fragments. If you want to shred that down to a table, you'd have to modify the columns you're selecting and the .query() in the SELECT. This will work no matter how many times NAME repeats in a single COMPONENT, as long as at least one has the word 'Detection' in it.
If NAME can only occur once, or you only care about the first instance, you could also do:
SELECT X.Component.query('.')
FROM @xml.nodes('/SC_ROOT/COMPONENTS/COMPONENT[contains(NAME[1], "Detection")]') as X(Component)
Which would give the same output.