I think that this has got to be a ASP.Net worker process permissions issue on some or all of the gallery folders - although it it odd that the uploaded file is successfully placed in the _source child folder. As for checking permissions:
1. First navigate to Host-->Host Settings and in the Basic Settings find what is listed for the ASP.Net Identity. That is the account which must have full permissions (including modify) on the root DotNetNuke install folder AND all child folders and in particular in reference to your problem each Portals/
/Gallery/
/
/ folders and their _thumbs and _source folder.
2. In your hosting control panels file manager (not the DotNetnuke Admin-->File Manager) you should be able to examine and set permissions for the ASP.Net Identity account whose name you discovered in #1 above. That user will need to have full permissions including modify to be able to not only read but write and update physical files.
Also, am I correct that when you look at the physical folders of the site via the hosting control panel or FTP you can see that the uploaded filed did get successfully placed in the album's _source folder but not in the _thumbs or album folder itself. For each uploaded file there should be three files saved to the file system. The original upload to the _source folder, a small 150x150 pixel (if default size) to the _thumbs folder, and a medium sized 500x500 pixel (if default size) to the child album folder.
Finally, do you have access via MS SQL Server Management Studio or other similar tool to the database? If so, please take a look at the DotNetNuke Folders table to see if rows for each of the Gallery child albums and their _source and _thumb folders were created.. If you could run a query similar to the following (replacing objectQualifier "DNN_" with the appropriate value(if any) for your installation and post the results it would be most helpful if the ASP.Net permissions are not the problem:
SELECT
F.FolderID,
F.PortalID,
F.FolderPath,
FP.AllowAccess,
R.RoleName,
P.PermissionKey
FROM dbo.DNN_Folders F
Inner Join dbo.DNN_FolderPermission FP on F.FolderID = FP.FolderID
Inner Join dbo.DNN_Roles R on FP.RoleID = R.RoleID
Inner Join dbo.DNN_Permission P on FP.PermissionID = P.PermissionID
WHERE F.FolderPath LIKE 'Gallery/%'
ORDER BY F.FolderPath