I ran into these same problems. For me, the solution was to scale back the number of jars added to the DesignerDebug classpath when launching the designer or client so that it only included the client-bootstrap artifact and everything else was pulled from the gateway.
My build.gradle for DesignerDebug is just
dependencies {
implementation "com.inductiveautomation.ignition:client-bootstrap:${sdk_version}"
}
When launching the designer I use the VM options
-Djavaws.sr.gateway.addr.0=localhost:8088/main
-Djavaws.sr.main=com.inductiveautomation.ignition.designer.DesignerStartupHook
-Djavaws.ignition.debug=true
-Dautologin.username=<USERNAME>
-Dautologin.password=<PASSWORD>
-Dproject.name=<PROJECT_NAME>
-Djavaws.sr.runtimeOverride=true
When launching the client
-Djavaws.sr.gateway.addr.0=localhost:8088/main
-Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook
-Djavaws.ignition.debug=true
-Dautologin.username=<USERNAME>
-Dautologin.password=<PASSWORD>
-Djavaws.sr.project=<PROJECT_NAME>
-Djavaws.sr.runtimeOverride=true
Maybe this will solve your issues as well.