The first step involves finding a reasonable FFT mesh. If you want to avoid wrap around errors at all chose the values recommended by VASP (or the makeparam utility for "PREC=High"). As a first test use a supercell containing approximately 5 layers bulk and 5 layers vacuum. Use a reasonable not too large k-points set (see below). The values for the FFT-mesh which strictly avoid any wrap-around errors are also written to the OUTCAR file:
WARNING: wrap around error must be expected set NGX to 22These meshes will result in long computational times, but you must afford at least one exact calculation. If you want to reduce the meshes try to use the 3/4 rule (makeparam PREC=Med) and compare the results with the exact converged results.
As a next step find a reasonable k-point mesh. First hints are already given by the bulk calculation. For a surface calculation you will have one long lattice vector and two short lattice vectors. For the long direction one division for the k-point mesh is sufficient, because the band dispersion is due to the vacuum zero in this direction. For the short directions the convergence speed with respect to the number of divisions will be approximately the same as for the bulk. Increase the number of k-points till you get a sufficiently converged free energy. Once again, avoid large wrap around errors.
Possible cross checks: