red300zx99x,
You have selected a rather tricky task. These things are normally done in a little micro-processor nowadays. The technique used is called "Finite State Machine" and that describes what it is all about. You have a number of states. In your case, you have the HOME case, the FWD case and the BWD case. If you want to do this with relays it is good to have one relay for each state, but you will find it smarter to have a /HOME (not home) relay that pulls in as soon as the device leaves home position (home limit switch has a NO contact). OK.
The cycle starts with FWD, BWD and /HOME off and the device in home position.
Press START and FWD pulls in. A holding contact keeps FWD energised. /HOME pulls in when START is pressed and is kept energised by the home limit switch when the device leaves home position. It is important that you pull /HOME in when you start. There can be a short circuit between FWD and BWD if you do not do that.
When the end switch is reached, it opens the circuit (NC) for FWD relay so that it drops out and the motor stops. When the FWD relay drops a NO contact in series with /HOME NC contact pulls the BWD relay in and the device starts moving home again.
If your motor is a high-current one, you could need some delay here to avoid short-circuiting when you change direction.
When the device reaches home position, the /HOME relay drops out and the /HOME NC contact opens so that the BWD relay drops out.
You will probably also need an emergency stop that stops all motions and then another push-button to take the device back home without having to complete the cycle.
There should also be a thermal motor protection to avoid burning out the motor if it gets stuck. Put at least a fuse in series with the motor.
I leave no guarantee that this is the exact function you need, but it will start you in the right direction.