In my environment, this indeed looks like a conflict of some sort with the user being an admin vs. global moderator vs. moderator. I fixed this by running a statement similar to the following for each afflicted user (change the UserID to match the user's id that you are trying to fix):
BEWARE! This SQL statement needs to be run in SQL Server Enterprise Manager or SQL Server Management Studio. Also, these changes are NOT REVERSEABLE! You are advised to first back-up your database prior to making this update.
DECLARE @UserId INT;
SELECT @UserId = 1;
UPDATE [dbo].[Forum_Users] SET [IsGlobalModerator] = 0
WHERE [UserID] = @UserId AND [IsGlobalModerator] = 1
DELETE FROM [dbo].[Forum_Moderators] WHERE [UserId] = @UserId
INSERT INTO [dbo].[Forum_Moderators]([UserID],[ForumID],[AssignedDate],[PostsModerated])
SELECT @UserId, [ForumId], GETDATE(), 0 FROM [dbo].[Forum_Forums]
SELECT [UserID],[ForumID],[AssignedDate],[PostsModerated]
FROM [dbo].[Forum_Moderators]
ORDER BY [ForumID], [UserId]