Hi there,
The issue here seems to be because the schema is attached to your entry-content
element and you’re adding the title/sub-title to the content, so it’s being parsed as part of your content.
Not sure why they’re not adding spaces – that part is definitely strange.
My suggestion would be to disable the structured data as it is now:
add_filter( 'generate_schema_type', '__return_false' );
Then use JSON-LD for structured data. Most SEO plugins will have this built in, but there are standalone plugins as well: https://wordpress.org/plugins/wp-structuring-markup/