If this is a bug we’ll need a video file which reproduces it to track down the cause. I assume that everything works if you manually decode all the frames?
If you can’t share the video then maybe you can find out what the difference is between the actual frame returned and the frame you request. i.e. If you request frame 10,20,30,40 etc. which frame do you actually get when seeking? If it works for low numbered frames where does he process brake down?