Ok, I think I see the error. ui.cpp line 3301 (current dev) should look like this
case UI_ACTION_SET_ORIGIN:
if(!allowMoves) return UI_ACTION_SET_ORIGIN;
Printer::setOrigin(-Printer::currentPosition[X_AXIS], -Printer::currentPosition[Y_AXIS], -Printer::currentPosition[Z_AXIS]);
break;
Originally it had setOrigin(0,0,0) but the function sets offsets so 0 is wrong here.