I'm guessing that you've solved the issue now, but your post was coming up as the top hit while I was trying to solve the same problem. I was finding that my package's vignette would build when I hit 'Knit' or used devtools::build_vignettes() but it would crash with an error when I used devtools::check(). As you hinted at, I managed to solve it by switching from knitr to rmarkdown as the vignette builder. The changes that I had to make to do this were:
DESCRIPTION:
VignetteBuilder: knitr -->VignetteBuilder: rmarkdown
Suggests: knitr, BiocStyle --> Suggests: knitr, BiocStyle, rmarkdown
VIGNETTE:
%\VignetteEngine{knitr::rmarkdown} --> %\VignetteEngine{rmarkdown::render}
With those changes made, devtools::check() works fine. It seems likely that there is a bug somewhere in either knitr or devtools, but not really clear to me which. If any of the developers of those packages wants to try and fix it, I can point them at the relevant file on github.