Well, egg on my face. Turns out I just needed to add a "toString" to the end of the whole thing.
#set($myexcerpt = $action.getHelper().renderConfluenceMacro($macroFinal).replaceAll('"', '"').toString())
So, lesson learned, when in doubt, toString.