nums.each do |key, value|
  if value%2 == 0
    nums[:key] = value
  end

まずこれはeach doに対してendが無いからエラーになる
そして:keyはkeyではなく:keyというSymbolなのでこれも間違い
nums = {:a=>1, :b=>2, :c=>3, :d=>4, :e=>5, :key=>1}
nums[:b] = 2
p nums #=> {:a=>1, :b=>2, :c=>3, :d=>4, :e=>5, :key=>1}
飽くまで:bに対して2を再び関連付けているだけなので間違い
どうしても上のような書き方がしたいなら

h = Hash.new
nums.each do |key, value|
  if value%2 == 0
    h[key] = value
  end
end

p h #=> {:b=>2, :d=>4} 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)