It sounds like your switch is working (your subject suggests otherwise)?
When you reset the printer and control each of the axis, do they move in the correct direction?
Have you tried setting the direction of your Z-axis the same as your other axis (in your Configuration.h file)?
Currently it is:
#define INVERT_Z_DIR false
Maybe make that true?
Sorry if my suggestions are not useful, I just had a quick look. On my old marlin FW (vs 1.1.0-RC7) I could not find the words "G28 Z forbidden". I am not sure if that is in the newer versions or a repetier thing.