1.Is there a library to download to replace the broken one?
No. The library isn't broken. The underlying mechanism for dealing with dynamically allocated memory (free()) is.
- If not, is there a workaround
There is a patch that can be applied to fix the free() function.
- If nothing helps I have to surrender and stop using String?
That would be the best thing to do, given how little memory the Arduino has.