Yes, limma should work fine on this data, although you are on the lower boundary in terms of number of genes. Theoretically, the minimum number of genes for the empirical Bayes procedure to be beneficial is three. Four genes is probably the minimum from a practical point of view.
You may already know how to use duplicateCorrelation. If you have a simple before vs after paired comparison with some unmatched samples, then you could proceed like this:
design <- model.matrix(~treatment)
dupcor <- duplicateCorrelation(y, design, block=patient)
fit <- lmFit(y, design, block=patient, correlation=dupcor$consensus)
fit <- eBayes(fit)
Be sure to check that dupcor$consensus is greater than zero.
We used this strategy to compare tumour vs normal tissue in the presence of unmatched samples in
although that was microarray data rather than PCR.