You can use and
in the predicate and add more checks.
declare @X xml = '
<Items>
<Item Name = "Name1" Type = "Type1">Value1</Item>
<Item Name = "Name2" Type = "Type2">Value2</Item>
</Items>
'
declare @Value varchar(10) = 'NewValue2'
declare @Name varchar(10) = 'Name2'
declare @Type varchar(10) = 'Type2'
set @X.modify('
replace value of (/Items/Item[
@Name = sql:variable("@Name") and
@Type = sql:variable("@Type")
]/text())[1]
with sql:variable("@Value")
')