This process is inconsistent for us switching from one SQL SDE source to another. It's a complete mess and used to work just fine in ArcMap/arcpy.
For us if the server name is the only change then the find / replace dictionary works but if anything else is different (database, user, instance) than the find/replace dictionary does not work.
The old / new .sde connection approach has never worked for us
There is a bug in ArcGIS Pro 3.0.3+ if you try to update the WORKSPACE on a map manually it breaks the layers in map document which could be one reason it might not be working consistently with Arcpy.
https://my.esri.com/#/support/bugs/bugs?bugNumber=BUG-000156145
Not sure why they are reporting "as designed" as I would want the workspace option to work like it did in ArcMap. Guess we are asking too much!!
We also created an enhancement because ArcGIS Pro references to the SDE connection properties differently depending on where you look. If they cannot get these properties to be consistent how could any repathing possibly work?
https://my.esri.com/#/support/bugs/bugs?bugNumber=ENH-000161406