No further explaination needed. PNG are in the exported video. JPEG aren’t. Text filters also aren’t. OH MY GOD!
Are you sure the JPEGs are actually JPEGs and not PNGs with a “.jpg” extension? Something similar (but opposite) reported here:
If your JPEGs really are JPEGs and not PNGs with the wrong extension, then try turning off Parallel Processing on the export.
EDIT - I just renamed a PNG to “.jpg” and imported it as a clip into Shotcut v 20.11.28, then exported it - this version of Shotcut handled this perfectly, so this probably isn’t your problem, unless you’re using an old version.