How can I find matchings in a Bipartite graph beginning with specific vertices?
To make this a minimum-cost perfect matching problem, split each node as you indicated (sending/receiving).  Add a high-cost edge from each node's sending node to its own receiving node.  This high-cost edge will only be used if that node does not receive a kidney.  Additionally, I assume Node 0 in the above graph is supposed to be an altruistic donor or a deceased organ donor that does not need to receive a kidney.  (Otherwise, your example has no cycles and no exchange can take place.)  Assuming Node 0 is a 1-way donor, add low cost edges from every sending node to Node 0's receiving node.  

Then solve the minimum-cost perfect matching problem.  A perfect matching is obviously possible (every sending node can send to its own receiving node).  A minimum-cost perfect matching will use as few of the high-cost edges as possible.  Minimizing the number of high-cost edges (nodes that send to themselves) is the same as maximizing the number of nodes that receive a kidney.

This is also known as the assignment problem and can be solved in polynomial time.  Most kidney-exchange research adds the significant complication of requiring cycles to be at most length k.  That complication makes the problem NP-hard.  Altruistic donors could allow for longer cycles in practice.