Are there any issues when switching from a GSTBaseTransform-based project to a GST Element approach?

When I pass a DMA buffer to the next element using the gstbasetransform class, everything works fine.
However, when I implemented the next element as a regular gstelement (not using the gstbasetransform framework) and simply added the chain, event, and query functions for a basic pass-through filter, I started experiencing frame drops.

I didn’t implement any custom internal filtering logic—just a straightforward pass-through.
There are no issues when using gstbasetransform for the transform IP, so I’m wondering:
Did I miss something essential in my gstelement implementation, or does gstbasetransform internally handle some processing that makes direct compatibility impossible?