Kodi in LE has been compiled with an internal SMB client (libsmbclient) which is independent and separately configurable to the 'smbclient' binary derived from Samba which is also embedded in the OS. Both follow the default 'Samba' behaviour of SMBv2 min and SMBv3 max, meaning clients connect at SMBv2 and (re)negotiate to SMBv3 if the server supports it, unless manually forced to use min/max SMBv3 or min/max SMBv1 only. If users set min SMBv1 and max SMBv3 the client still tries to connect at SMBv2, and this has been the Samba default for at least a decade now (as SMBv1 has long been considered wildly insecure).
The Kodi smb client can be configured with different read/write cache sizes. LE uses the Kodi defaults which can be overriden (with mostly negative effects). In older Kodi versions this is done from advancedsettings.xml. From Kodi 21 (LE12) the default SMB read chunk size was changed and can now be configured from the Kodi GUI which helps with some scenarios. Are all the Kodi clients running the same Kodi version?
I have zero knowledge on Jellyfin clients, but they may work in a similar fashion to Kodi with different caching and protocol support in different OS and app versions. If you want to test for SMBv1 or SMBv2/v3 use, you should be able to disable SMBv1 support on the Lubuntu server (and you should do this anyway) and if things break, it was using SMBv1 (which is slower) to connect.
The only other thing which normally impacts SMB transfer speeds is the filesystem driver on the server; the main problem being that users have NTFS drives which are poorly supported in the host OS. These days LE uses in-kernel NTFSv3 drivers. In the past we used NTFS-3G which are userspace (and thus much slower) drivers - and this is still the default in most distros. However that's a server side restriction so it would limit transfter speeds to all SMB clients, so that's unlikely to be the reason.
