Here are the drop scripts for GP 2018 to run before the exec script if it doesn't work by itself:
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'GetAssignedUsers')
DROP PROCEDURE [GetAssignedUsers];
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'SendWorkflowAssignmentEmail')
DROP PROCEDURE [SendWorkflowAssignmentEmail];
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'SendWorkflowCompletionEmail')
DROP PROCEDURE [SendWorkflowCompletionEmail];
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'IsValidUserByObjectGuid')
DROP FUNCTION [IsValidUserByObjectGuid];
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'IsValidUserByUser')
DROP FUNCTION [IsValidUserByUser];
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'GetUserByObjectGuid')
DROP FUNCTION [GetUserByObjectGuid];
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'GetObjectGuidByUser')
DROP FUNCTION [GetObjectGuidByUser];
IF EXISTS (SELECT [NAME]
FROM SYSOBJECTS
WHERE [NAME] = 'TestEmail')
DROP PROCEDURE [TestEmail]
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'Microsoft.Dynamics.GP.WorkflowGP.WorkflowEngine')
DROP ASSEMBLY [Microsoft.Dynamics.GP.WorkflowGP.WorkflowEngine];
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'Microsoft.IdentityModel.Clients.ActiveDirectory')
DROP ASSEMBLY [Microsoft.IdentityModel.Clients.ActiveDirectory];
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'Microsoft.Azure.ActiveDirectory.GraphClient')
DROP ASSEMBLY [Microsoft.Azure.ActiveDirectory.GraphClient];
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'Newtonsoft.Json')
DROP ASSEMBLY [Newtonsoft.Json];
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'System.Web')
DROP ASSEMBLY [System.Web]
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'System.IdentityModel')
DROP ASSEMBLY [System.IdentityModel]
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'System.Runtime.Serialization')
DROP ASSEMBLY [System.Runtime.Serialization]
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'System.DirectoryServices')
DROP ASSEMBLY [System.DirectoryServices]
IF EXISTS (SELECT [NAME]
FROM sys.ASSEMBLIES
WHERE [NAME] = 'Microsoft.Dynamics.GP.DocAttachEngine')
DROP ASSEMBLY [Microsoft.Dynamics.GP.DocAttachEngine]