I have been thinking on how to deal with a similar problem and
here is the approach I was thinking of. Use g.region to zoom in
on the area around the hole and use r.surf.(idw or tps) to
interpolate. Then use r.mapcalc to fill in the hole with the
interplated values.
Bruce