Consider returning a BoundIndexerAccess from GetCollectionExpressionApplicableIndexer() and using existing lowering for the indexer assignment rather than generating a call to the setter directly.
Similarly, for CollectionExpressionTypeKind.DictionaryInterface, generate a BoundIndexerAccess using the well0-known Dictionary<TKey, TValue>.this[TKey] indexer rather than using the WellKnownMember.System_Collections_Generic_Dictionary_KV__set_Item.