A problem to maximize the number of edges in a cycle while minimizing the total weight
This is NP-complete, since an instance $(V,E)$ of the NP-complete problem Hamiltonian Path can be reduced to it: Turn each vertex in the original HP instance into a pair of vertices $a_i, b_i$ connected by a low-weight edge, with one vertex in each part of the bipartite graph, and add a high-weight edge $a_ib_j$ for each edge $v_iv_j$ in the original graph. Finally add $O$. Solve your instance and delete $O$: the original graph has a HP iff $2|V|−1$ edges remain.

All this is to say there is almost certainly no polynomial-time algorithm to solve your problem (since if there was, Hamiltonian Path, and every other NP-complete problem could also be solved in polynomial time).  Adapting an algorithm for solving TSP sounds reasonable to me.