I've had a trawl through live information systems (Darwin) logs for the night in question.Yes it is incredibly unfortunate timing for the OP, but Southern definitely made the alteration after the arrival of the train the OP was originally on. The train had previously been cancelled for much longer than the reinstatement.
With the timing of the (new) alteration to start the service from Haywards Heath, there's little to no chance that will filter through to the station that quickly so the station staff were providing the information that they believed to be correct at the time they asked.
The service was marked as running in the live information system until 22:20, when the service was marked as cancelled (can="true") at every location it was due to call at/pass through:
XML:
<uR updateOrigin="CIS" requestSource="at39" requestID="0000000000043723">
<schedule rid="202501018800591" uid="X00591" trainId="1F68" ssd="2025-01-01" toc="SN" status="1"
trainCat="XX">
<ns2:OR wtd="22:46" tpl="VICTRIC" act="TB" can="true" ptd="22:46" />
<ns2:PP wtp="22:48:30" tpl="BATRSPJ" can="true" />
<ns2:PP wtp="22:50" tpl="POUPRTJ" can="true" />
<ns2:IP wta="22:52" wtd="22:53" tpl="CLPHMJC" act="T " can="true" pta="22:52" ptd="22:53" />
<ns2:PP wtp="22:54" tpl="WANDCMN" can="true" />
<ns2:PP wtp="22:55:30" tpl="BALHAM" can="true" />
<ns2:PP wtp="22:57" tpl="STRENJN" can="true" />
<ns2:PP wtp="22:57:30" tpl="STRHCOM" can="true" />
<ns2:PP wtp="22:58" tpl="NORBURY" can="true" />
<ns2:PP wtp="22:59" tpl="THTH" can="true" />
<ns2:PP wtp="23:00" tpl="SELHRST" can="true" />
<ns2:PP wtp="23:00:30" tpl="WNDMLBJ" can="true" />
<ns2:IP wta="23:01:30" wtd="23:02:30" tpl="ECROYDN" act="T " can="true" pta="23:02"
ptd="23:02" />
<ns2:PP wtp="23:03" tpl="SCROYDN" can="true" />
<ns2:PP wtp="23:04" tpl="PURLEYO" can="true" />
<ns2:PP wtp="23:06" tpl="PURLEY" can="true" />
<ns2:PP wtp="23:07" tpl="SNSTJN" can="true" />
<ns2:PP wtp="23:12:30" tpl="EARLSWD" can="true" />
<ns2:PP wtp="23:14" tpl="SALFDS" can="true" />
<ns2:PP wtp="23:17" tpl="HORLEY" can="true" />
<ns2:IP wta="23:18" wtd="23:19:30" tpl="GTWK" act="T " can="true" pta="23:18" ptd="23:19" />
<ns2:PP wtp="23:22:30" tpl="THBDGS" can="true" />
<ns2:PP wtp="23:24" tpl="BALCMTJ" can="true" />
<ns2:PP wtp="23:25" tpl="BALCOMB" can="true" />
<ns2:PP wtp="23:28" tpl="CPYHLDJ" can="true" />
<ns2:IP wta="23:29:30" wtd="23:30:30" tpl="HYWRDSH" act="T " can="true" pta="23:30"
ptd="23:30" />
<ns2:IP wta="23:34" wtd="23:34:30" tpl="WVLSFLD" act="T " can="true" pta="23:34" ptd="23:34" />
<ns2:PP wtp="23:35" tpl="KEYMERJ" can="true" />
<ns2:IP wta="23:41" wtd="23:41:30" tpl="PLMPTON" act="T " can="true" pta="23:41" ptd="23:41" />
<ns2:IP wta="23:45:30" wtd="23:46" tpl="COKSBDG" act="T " can="true" pta="23:46" ptd="23:46" />
<ns2:IP wta="23:50:30" wtd="23:58" tpl="LEWES" act="T " can="true" pta="23:51" ptd="23:58" />
<ns2:PP wtp="00:01" tpl="STHRHMJ" can="true" />
<ns2:PP wtp="00:02" tpl="GLYNDE" can="true" />
<ns2:IP wta="00:07" wtd="00:07:30" tpl="BERWICK" act="T " can="true" pta="00:07" ptd="00:07" />
<ns2:IP wta="00:12" wtd="00:13" tpl="POLGATE" act="T " can="true" pta="00:12" ptd="00:13" />
<ns2:PP wtp="00:16" tpl="WILDJN" can="true" />
<ns2:IP wta="00:17" wtd="00:17:30" tpl="HMPDNPK" act="T " can="true" pta="00:17" ptd="00:17" />
<ns2:DT wta="00:22" pta="00:22" tpl="EBOURNE" act="TF" can="true" />
<ns2:cancelReason>765</ns2:cancelReason>
</schedule>
</uR>
It remained cancelled at all stops until the reinstatement made it through to Darwin at 23:26:33. You can see from the XML extract below that the service was changed to be cancelled (can="true") at all locations between Victoria and Copyhold Jn, just before Haywards Heath.
XML:
<schedule rid="202501018800591" uid="X00591" trainId="1F68" ssd="2025-01-01" toc="SN">
<ns2:OR wtd="22:46" tpl="VICTRIC" act="TB" can="true" ptd="22:46" />
<ns2:PP wtp="22:48:30" tpl="BATRSPJ" can="true" />
<ns2:PP wtp="22:50" tpl="POUPRTJ" can="true" />
<ns2:IP wta="22:52" wtd="22:53" tpl="CLPHMJC" act="T " can="true" pta="22:52" ptd="22:53" />
<ns2:PP wtp="22:54" tpl="WANDCMN" can="true" />
<ns2:PP wtp="22:55:30" tpl="BALHAM" can="true" />
<ns2:PP wtp="22:57" tpl="STRENJN" can="true" />
<ns2:PP wtp="22:57:30" tpl="STRHCOM" can="true" />
<ns2:PP wtp="22:58" tpl="NORBURY" can="true" />
<ns2:PP wtp="22:59" tpl="THTH" can="true" />
<ns2:PP wtp="23:00" tpl="SELHRST" can="true" />
<ns2:PP wtp="23:00:30" tpl="WNDMLBJ" can="true" />
<ns2:IP wta="23:01:30" wtd="23:02:30" tpl="ECROYDN" act="T " can="true" pta="23:02" ptd="23:02" />
<ns2:PP wtp="23:03" tpl="SCROYDN" can="true" />
<ns2:PP wtp="23:04" tpl="PURLEYO" can="true" />
<ns2:PP wtp="23:06" tpl="PURLEY" can="true" />
<ns2:PP wtp="23:07" tpl="SNSTJN" can="true" />
<ns2:PP wtp="23:12:30" tpl="EARLSWD" can="true" />
<ns2:PP wtp="23:14" tpl="SALFDS" can="true" />
<ns2:PP wtp="23:17" tpl="HORLEY" can="true" />
<ns2:IP wta="23:18" wtd="23:19:30" tpl="GTWK" act="T " can="true" pta="23:18" ptd="23:19" />
<ns2:PP wtp="23:22:30" tpl="THBDGS" can="true" />
<ns2:PP wtp="23:24" tpl="BALCMTJ" can="true" />
<ns2:PP wtp="23:25" tpl="BALCOMB" can="true" />
<ns2:PP wtp="23:28" tpl="CPYHLDJ" can="true" />
<ns2:OR wta="23:29:30" wtd="23:30:30" tpl="HYWRDSH" act="TB" planAct="T " pta="23:30" ptd="23:30" />
<ns2:IP wta="23:34" wtd="23:34:30" tpl="WVLSFLD" act="T " pta="23:34" ptd="23:34" />
<ns2:PP wtp="23:35" tpl="KEYMERJ" />
<ns2:IP wta="23:41" wtd="23:41:30" tpl="PLMPTON" act="T " pta="23:41" ptd="23:41" />
<ns2:IP wta="23:45:30" wtd="23:46" tpl="COKSBDG" act="T " pta="23:46" ptd="23:46" />
<ns2:IP wta="23:50:30" wtd="23:58" tpl="LEWES" act="T " pta="23:51" ptd="23:58" />
<ns2:PP wtp="00:01" tpl="STHRHMJ" />
<ns2:PP wtp="00:02" tpl="GLYNDE" />
<ns2:IP wta="00:07" wtd="00:07:30" tpl="BERWICK" act="T " pta="00:07" ptd="00:07" />
<ns2:IP wta="00:12" wtd="00:13" tpl="POLGATE" act="T " pta="00:12" ptd="00:13" />
<ns2:PP wtp="00:16" tpl="WILDJN" />
<ns2:IP wta="00:17" wtd="00:17:30" tpl="HMPDNPK" act="T " pta="00:17" ptd="00:17" />
<ns2:DT wta="00:22" pta="00:22" tpl="EBOURNE" act="TF" />
<ns2:cancelReason>767</ns2:cancelReason>
</schedule>
Every minute between 23:30 and 23:34, its estimated departure went up by a minute until eventually falling back to "Delayed" until it departed at midnight.
If they had reinstated the service just a minute or two earlier, you might have been able to take it, but given it only filtered through at 2326½ and your train departed effectively on-the-dot at 2326, you (and staff at the station) missed this info by just 30 seconds.
The data I'm using for this came from the Darwin Archives project website: https://archive.area51.dev/archive/ukrail/darwin/2025/1/1/