I think this would work. So you first determine the pathing size of your structure, a farm for example is 4x4 or 128x128 units long. You could store this information in an Array or Hashtable.
Then move your region to the position of the unit (the region will snap to the grid).
Then create an array of Points offset from the center of the Region that will be used to check pathability.
Farm (128x128) example:
set point[0] = center of region
set point[1] = point[0] offset by -128, 128
set point[2] = point[0] offset by -96, 128
set point[3] = point[0] offset by -64, 128
etc...
You could simplify this with a loop and some extra variables, something like:
Set variable IsPathable = True
Set variable x = -128, Set variable y = 128
Set variable point[0] = center of region
For loop (int A):
Set point = point[A] offset by x, y
Set x = x + 32
If Terrain is pathable at point[A] equal to False then Set IsPathable = False
Remove point[A]
If x > 128 then Set x = -128 and Set y = y - 32
If y < -128 then end the loop
Finally you can check: If IsPathable equal to True then -> You can build the structure there.
You may have to use smaller increments like 16 instead of 32.