consider splitting it up in to 2 pistons of 10 chunks? the number of chunks has an effect on the effective execution time for each event and this would also reduce the risk of running out of timeouts when trying to save it if gets too large.
simple things i would do
is the last part which allows some automation when in-laws arrive i would make that its own piston called In-laws are here AGAIN, sweet! piston
and remove that part from this piston.
if you post an updated version with the restrictions removed, i will import it and look some more.
EDIT: couple more things:
before turning off the lights there is an only when to check if any of the lights are on. why not remove that only when and remove the notification that goes along with it. just turn off the lights.
if there is a mode management piston, is there a need to repeat the mode settings in this piston as well?
also, the contact sensor 7 and lock 1 unlock group of actions is repeated a few times. may be consolidate that under 1 if?
EDIT2: sorry, i realize this were not your original question. just trying to look at some things that may be helpful regardless. if they are not, just ignore. 