ClearAll[swapF]
swapF = Module[{m1 = #, m2 = #2, k = Floor[Length[#]/2]},
Module[{copy = #, rows = Join @@ {Range[k], Range[k + 2, 2 k + 1]}},
CompoundExpression[copy[[rows, ;; k]] = #2[[rows, ;; k]],
copy[[k + 1, k + 1 ;;]];;2k]] = #2[[k + 1, k + 1 ;;]]];;;2k]]]; copy] & @@@
{{m1, m2}, {m2, m1}}] &;
Example:
mat1 = Partition[Range[1, 25], 5];
mat2 = Partition[Range[26, 50], 5];
Column@(Row /@ {MatrixForm /@ {mat1, mat2}, MatrixForm /@ swapF[mat1, mat2]})