Hi - author of EOCV and VisionPortal here.
Note that VisionPortal is simply a wrapper around EOCV. You can either convert your code to a VisionProcessor and use it with VisionPortal (the LearnJava4FTC book has a section on it), or you can call the AprilTag VisionProcessor from an EOCV pipeline (see my post here).
In any case, what you are doing should in theory work. I may try to reproduce the issue as I have time. But, you definitely want to move everything to one API to avoid closing and re-opening the camera if possible.