I take it this is why you are doing the home switches !!!
When you say "it comes out a different size" what are we talking about here - thousanths of an inch, or a factor or two, or what.
When you say "if I cut the same part next day" - do you mean 24 hours later, or just cut two consecutive parts.
The number of steps per unit set for your motors do not make any difference - even if they were wrong, they would be wrong all the time and the parts would come out the same size (albeit the wrong size). When you say "they just fall apart" do you mean the figures in the motor tuning alter, or that the motors just seem to do their own thing.
You only need to set the steps per unit once - finish - not every time you start the machine.
I don't know whether you are using steppers, or motors with some sort of positional feedback.
If they are steppers, then they are accurate and (I would have thought) that the only problem you have is a mechanical one, where somehow, something is slipping, either the motor IS missing steps (in which case things would be consistantly smaller) or a belt or gear is slipping. If you motors have a positional feedback, then maybe this is faulty.
Just make sure your acceleration and speeds are not too high so that you do not loose steps on acceleration, or overun when stopping.
The only other thing is "backlash" - have you got this set up. If you haven't, then your results may be indeterminate, depending on which side of the backlash you happen to be when you start.
The main thing with a CNC machine is consistancy - yes, that is what you are after, but you must be consistant as well - in that on a run of parts, YOU must do exactly the same positioning moves, so the machine is ALWAYS in the same position when it starts.
The ideal, I suppose, is to run the machine to the homes, put the work in a jig (so it is in exactly the right position) and set off from there, which, I assume, is what you are thinking.
Stick with it !!!