There is one AJAX call returns the user profile object in before loading the Utag. Since the returning time is uncertain of that Ajax call, could be before or after the Utag.js loads up, so calling utag.link cannot give persistent results.
If that is still inconsistent, we could help you set up a custom listener for the AJAX response that will wait until the response is complete before triggering the utag.link function. You can reach out to your Account Manager to start getting this set up.
I think the best way to do this would be to fire off the utag.link() or utag.view() call in the success callback of the ajax request. That way youre not worrying about timing, you simply make the utag call after the request has finished processing.
url : "AJAX_POST_URL",
data : formData,
utag.data.ajaxResponse = data;