Getting Duplicate Posts on Home Page with Widget Added Between Posts

I think you should use the wp_reset_postdata(); function after the widget area.

Probable reason for this behavior is the widget, which itself uses two wp_query(); functions. May be those quires modifying the global $post data which is actually used by your main query.

I guess calling wp_reset_postdata(); function right after the widget will solve the problem.

Reference – Codex wp_reset_postdata()

After looping through a separate query, this function restores the $post global to the current post in the main query.