I don't think it could be simplified more without using mappings or writing specialized commands and/or functions:
" setup search pattern
:let @/ = '\V' . trim(getline(89))
" or you can input it interactively after the first :g/...
" with the help of :h c_ctrl-r_=
" get replacement text
" put (paste) with indent adjust
" delete old ...