Milnor patching for general modules The Milnor patching theorem for projective modules is the following statement. Given a pullback diagram of rings 
$$
\begin{array}{}
R  & \xrightarrow{f_2} & R_2  \\
\downarrow{f_1} & & \downarrow{j_2} \\
R_1 & \xrightarrow{j_1} & R_3 
\end{array}
$$
such that $j_1$ or $j_2$ is surjective, a pair of projective modules $P_1$ and $P_2$ over $R_1$ and $R_2$ respectively, and an isomorphism $h : R_3 \otimes_{R_2} P_2 \to R_3 \otimes_{R_1} P_1$, then 
1) the $R$-module $P$ as the pullback in the diagram
$$
\begin{array}{}
P  & \xrightarrow{} & P_2  \\
\downarrow{} & & \downarrow{h(1 \otimes \text{id})} \\
P_1 & \xrightarrow{1 \otimes \text{id}} & R_3 \otimes_{R_1} P_1
\end{array}
$$
is projective. If furthermore $P_1$ and $P_2$ are finitely generated modules, then $P$ is finitely generated as well. 
2) There are natural isomorphisms $P \otimes_R R_1 \to P_1$ and $P \otimes_R R_2 \to P_2$.
3) All projective $R$-modules arise for appropriately chosen $P_1$, $P_2$ and $h$.
This theorem gives an equivalence of the category of projective modules on $R$, and the category of "patching data" consisting of $P_1$, $P_2$ and $h$ like above. 
Specifically, the equivalence may be described as follows. If we let $(P_1,P_2,h)$, $(P_1',P_2',h')$ be such patching data, a morphism of such triples is a pair of homorphisms $\phi_1 : P_1 \to P_1'$ and $\phi_2 : P_2 \to P_2'$ such that 
$$
\begin{array}{}
R_3 \otimes_{R_2} P_2  & \xrightarrow{1 \otimes \phi_2} & R_3 \otimes_{R_2} P_2'  \\
\downarrow{h} & & \downarrow{h'}\\
R_3 \otimes_{R_1} P_1 & \xrightarrow{1 \otimes \phi_1} & R_3 \otimes_{R_1} P_1'
\end{array}
$$
commutes. A projective module $P$ on $R$ yields a triple $(R_1 \otimes_R P, R_2 \otimes_R P, \text{id})$, where $\text{id}$ denotes the identity map $R_3 \otimes_R P \to R_3 \otimes P$. A morphism of modules $P \to P'$ induces a morphism of triples in the obvious way. 
My question is whether there exists a similar result for finitely generated modules (and modules in general), that is, not assuming $P_1$ and $P_2$ projective, with reasonable assumptions on $j_1$ and $j_2$ (and perhaps $R_1$,$R_2$ and $R_3$). Optimally, no stronger conditions though. 
I would like an equivalence of categories of finitely generated $R$-modules and a certain notion of "patching data" in this context. 
In the case that one of the homomorphisms $j_1$, $j_2$ is flat, I believe I have found such an equivalence. The proof makes use of the above theorem, by considering projective resolutions of arbitrary modules on $R_1$,$R_2$, together with an isomorphism $h$ like above.
I would however prefer not to assume flatness of $j_1$ or $j_2$.
Note: I asked this question some time ago on math.stackexchange, receiving no answers.
 A: Patching tends not to work well at the level of modules, especially if you want to preserve properties like finiteness of projective dimension.  For most purposes, it's far better to work not with modules but with perfect complexes of modules (that is, complexes that are quasi-isomorphic to complexes of projectives).  
For example, start with a triple
$$({\bf P}_1, {\bf P}_2,\alpha:{\bf P}_1\otimes R_3\rightarrow {R_3}\otimes {\bf P}_2)$$
where ${\bf P}_i$ is a bounded complex of finitely generated projective modules over ${R_i}$ and $\alpha$ is a quasi-isomorphism.  Then one can show that patching along $\alpha$ yields a perfect complex of $R$-modules (it is in fact  quasi-isomorphic to a bounded complex of finitely generated $R$-projectives).   Moreover, this patching functor is an equivalence of categories.
Of course this is trivial when $\alpha$ is actually an isomorphism of complexes, but one wants the more general formulation.  For example, given  patching data as in your post,   and assuming the $M_i$ have finite projective dimension, one can resolve the $M_i$, tensor both resolutions with $R_3$, lift $\alpha$ to the level of the resolutions (getting a quasi-isomorphism of complexes, not in general an isomorphism) and then patch to get a perfect complex over $R$.  
This is the "right" procedure because the patched complex retains data about  higher $Tor$'s, whereas your naive procedure throws away all information above $Tor_0$.
Added:  If you insist on working with modules, you'll find (at least if both $j_i$ are surjective) that an $R$-module $M$ can be constructed by patching if and only if the two kernels of the maps $M\rightarrow R_i$ have trivial intersection.  Therefore, in particular, any submodule of a free module can be constructed by patching.  But this also makes it easy to construct counterexamples.
Added further:  For an explicit counterexample, let $R=k[x,y]/(xy)$, $R_1=R/xR$, $R_2=R/yR$, and $M=R/(x-\alpha y)$ where $k$ is a field and $\alpha\in k$ is a unit.  Then $M$ can't be constructed by patching.
