Dazed and Confused

I am totally new to cnc but I built a machine. I finally got a cnc-shield and arduino sending signals to my machine and everything seems to be moving in the proper directions.
I get totally confused though about where the home position should be. It seems that no matter where I reset zero from a gcode file will send one or more axel past the limit.
My table is 250mm by 230mm by 100mm. Should I jog to 0,0,0 and set zero or should I jog to 250,230 and set zero? Should Z be all the way or all the way down? It shouldn’t be so confusing…should it? The more I fret over it the more muddy its getting.
And if the proper setting for grbl is bottom left or top right, will the gcode send the proper coordinates to the motors so they know where to go?
Any help would be greatly appreciated.
btw if it matters I would like to use easel to produce the gcode so that I can send it to grbl with UGS (My OS is Linux) if this matters, I don’t know.

Nice video. Very informative. Do you think it will work the same if Easel will not be controlling the machine. That is if the gcode is exported and sent with another program. Specifically Universal Gcode Sender.

Do you have homing switches installed?

Not yet but I will have shortly. I cant keep having these overruns.