I’m not sure I understand the issue.
The have_rows function will load the repeater field’s data and check that there are rows available. The WYSIWYG sub field values will also be loaded, and the values will be formatted (shortcodes will be run).
Perhaps the issue is with your shortcodes. Normally, a shortcode filter would modify the content, not echo out some HTML.
Is it possible that you can change your shortcode filters to return the value instead of outputting it?
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users