Using LP to prove the max matching - min cover theorem
Your proof is missing a crucial ingredient, namely that for bipartite graphs, your LPs have the same objective value as the corresponding IPs. This is not true in general (otherwise vertex cover would be in P). You can see a proof for maximum matching in lecture notes of Meena Mahajan, and a proof for both in lecture notes of A. A. Ahmadi.