The only problem is that Subscript[] doesn't accept the invisible comma. (I'll leave that explanation for the experts). With a "visible" comma the code works as expected.
Subscript[g, j, k] /. {j -> 2, k -> 2, Subscript[g, 2, 2] -> 3}
with a value of 3 for the expression (but you didn't assign it to anything).
Symbols formatted with visible or invisible commas in the subscript are the same symbol. Your other code should work.
NB: In the documentation section "tutorial/MakingDefinitionsForIndexedObjects" is the statement
You can think of the expression a[i] as being like an "indexed" or "subscripted" variable.