Wow what a day!
Running Exchange 2013 SP1(CU4) going straight to CU23.
Ran the CU23 update and it crashed on 2007 Exchange anti-spam hygiene\ASDat.msi. Found this link https://social.technet.microsoft.com/Forums/ie/en-US/70ee0081-a0a5-4ec9-9b27-0e0f95a3ee85/update-from-exchange-2013-sp1-to-cu8-error?forum=exchangesvrdeploy
Run these commands to get past this error.
msiexec /i "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\agents\Hygiene\ASDat.MSI" REINSTALLMODE=vomus
msiexec /i "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\agents\Hygiene\ASEntIRS.MSI" REINSTALLMODE=vomus
msiexec /i "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\agents\Hygiene\ASEntSig.MSI" REINSTALLMODE=vomus
Then try CU23 again. I had some DNS issues (seems like there are always those!) Worked those bugs out.
Then try CU23 again. Error with MSExchangeHost service not stopping/restarting.
See this link https://oddytee.wordpress.com/2017/11/09/cannot-start-service-msexchangeservicehost-on-computer-during-exchange-cu-update/ to get past that. (A PS script that loops stopping the ExchangeHost)
Then try CU23 again. Then I started having all these errors over and over again for missing ps1 scripts. I just found the name of script in the CU23 extracted files and pasted into the c:\Program Files\Microsoft\Exchange Server\V15\Scripts directory. Unfortunately, I had to do this several times to get all the missing *.ps1 scripts. i.e. error $RoleInstallPath\Scripts\ConfigureNetworkProtocolParameters.ps1"
Then try CU23 again. Then I had a bunch of other *.msi files it wanted to reference. i.e. MSSpeech_SR_TELE.ca-ES.msi (Copy them all MSSpeech*.msi)
See this link https://vanbrenk.blogspot.com/2016/06/exchange-2013-cu12-failed-to-install.html on how to find them. Once again, you will find them in the extracted CU23 files. There was a lot of them. Copy and pasted files in the C:\Program Files\Microsoft\Exchange Server\V15\bin\Setup\ServerRoles\UnifiedMessaging\ directory. I was able to do those as I went through install one by one without having to restart CU23 each time.
Eventually it did finish. Then I ran Windows Update to get the patch for CU23 to prevent the Hefnium(sp) hack.
14 hours later, I'm done. I hope this helps somebody!