This seems to be a general issue. There could be various probable causes. Let's iterate through a few. First, your Ubuntu installation may simply be corrupted. See if mounting on a Live image of Ubuntu for the same release version works.
Secondly, and as I alluded to in the comments to the question, a recent update to your phone might have troubled the situation. So you want to make sure your phone's not the culprit. If possible try mounting other android devices (preferably the same android version and if at all possible also the same device model) via MTP.
Next up, you want to make sure the relevant packages you mentioned are installed and configured properly. If only these packages are corrupted try purging them (not just uninstalling, i.e. run sudo apt-get purge <package_name>
for all the packages separately, reboot and reinstall).
Make sure you're getting the latest version for these packages by checking at packages.ubuntu.com and/or launchpad.net (only stable releases). And, of course, make sure you are trying different ports on your pc and using a cable whose integrity you are certain of. This a general troubleshooting first-aid that I would try if I faced this issue
If none of this works, it might be a kernel/android issue.
And you might want to consider raising a bug for your kernel release or asking on an android forum. If you are certain these are not the causes of your issue, maybe raising a bug for one of the relevant packages on launchpad (or where ever they're hosted) will help as they will have an in-depth knowledge of what's happening.
I've ordered these steps in increasing order of complexity/time-involvement. So if you try them in that order, it might save you time.
lsusb
to your answer with the phone connected over USB.