What happens at the edges in fft2 filtering?
Quick answer: FFT2 assumes periodic boundary conditions. This means that performing the FFT2 of an image is equivalent to have your original image periodically repeated in the horizontal and vertical directions, compute the DFT, and then only retain the central region. The weird artifacts you are seeing are probably the result of juxtaposing opposite edges that are not related to each other.

There are ways to work around this by, e.g., smoothing these discontinuities by using MATLAB’s edgetaper function before filtering.