What about s<C-r>0
, this can be repeated with .
s
deletes the character under the curser and puts you into insert mode.<C-r>0
inserts register 0, which holds the yanked text.
You can also use s
and type foo
manually, which is also repeatable with .