Hello,
The issue you described definitely sounds like a cache problem to me (I've seen and fixed thousands of WordPress issues throughout the years). Your code looks correct, and the header.php is a good place for it, among other possible locations.
Caching can also happen on the server-level, so you may want to ask your hosting provider about this. Additionally, you might want to check if there are any "Must Use Plugins" (AKA mu-plugins) installed on your site – you can find those on the Plugins admin page, after clicking on the "Must Use" filter link near the top, where you see All | Active | Inactive etc.
To verify that it is a cache issue, you can try a unique URL that has not been cached before, using query parameters that basically don't change anything, for example http://example.com/?abc=1
If the issue is related to cache, then your custom code should show up when viewing the source code of such pages.
The premium version of the theme does not add the "Person" structured data automatically, so you would probably have to make the same change there. I recommend checking out our very popular SEO plugin called Rank Math: https://wordpress.org/plugins/seo-by-rank-math/
After setting it up, it will automatically add the "Person" Schema code, along with countless other SEO features. You can use the plugin with any WordPress theme.
Hope that helps.