Any tips/hints for us to consider?
As @parky said, a well-crafted google search will yield plenty of examples. Perhaps even browsing the Downloads section of the forum will yield some results [update: yes there is one under the Allen-Bradley section].
What you will see in almost all of the examples, at least the good ones, is a programming technique called "separation of concerns."
That is, you need to separate the logic that turns the lead and lag pumps one or off, from the logic that knows which pump is lead and which is lag.
1) there will be a PLC-internal memory bit (a.k.a. boolean a.k.a. flag) allocated for running the lead pump, and another allocated for running the lag pump. These two bits' values are dependent on the lift station logic
ONLY e.g. RUN_LEAD bit becomes 1 when the sump level is above the HIGH level, and RUN_LAG become 1 when the sump level is above the HIGH-HIGH level, and both bits become 0 when the sump level goes below the LOW level, HOWEVER, those bits, are not dependent on, and have nothing to do with Pumps 1, 2, 3, and 4 or the day of the month.
2. There will be four PLC-internal memory bits, one for each pump, so each pump knows when it is the lead pump, and another four allocated so each pump knows when it is the lag pump. These eight bits' values are dependent on the day of the month
ONLY. Their values of independent of the behavior of the level in the sump.
Once that is done, the logic for Pump 1 looks like this:
if (RUN_LEAD and PUMP_1_IS_LEAD) or (RUN_LAG and PUMP_1_IS_LAG) then RUN_PUMP_1 := 1; ELSE RUN_PUMP_1 := 0; END_IF;
or more simply:
RUN_PUMP_1 := (RUN_LEAD and PUMP_1_IS_LEAD) or (RUN_LAG and PUMP_1_IS_LAG);
The other pumps are essentially the same. I wrote this in ST because is reads like it works and should be understandable to anyone who understands boolean operations; converting this logic to ladder is left as an exercise.