I have been in this situation before and my suspect is related with your Timer job service. It is recommended you need to suspend Search Service application using below before you install CU update otherwise your search might get corrupted.
$ssa = Get-SPEnterpriseSearchServiceApplication -Identity Search Service Application
Suspend-SPEnterpriseSearchServiceApplication -Identity $ssa
The following steps hopefully resolve your issue
You might want to try clear configuration cache
use the powershell script in link below: https://gallery.technet.microsoft.com/office/Clear-Configuration-Cache-d55bcba9
Remove search again using powershell.
$P = Get-SPServiceApplication -identity [GUID of Search Service Application]
Remove-SPServiceApplication $P -RemoveData
STSADM command if Powershell above not working
stsadm -o deleteconfigurationobject -id [replace with GUID of enterprise search]
NoteNote: Deleting using stsadm command above, you might need to remove SearchDB and Search Application Pool manually.
It also worth to check if there is an OrphanDB using the following code
$OrphanDBs = Get-SPDatabase | Where {$_.Exists -eq $false}
#clean any Orphans DB
Get-SPDatabase | Where{$_.Exists -eq $false} | ForEach {$_.Delete()}
Once Search service deleted, i have come another problem where i always get timeout when creating Search service either using powershell or Central admin GUI. Then i decide to remove the server from the farm and then rejoin the farm which reinstall the services.