I know the problem you are going through. Before a campaign starts, I type a list of house rules and a list of sources that I will allow. If I don't have the source, it isn't allowed. These do not change during the campaign. If someone is metagaming I don't hesitate to change the hit points, vulnerabilities, or abilities of a monster. Before I allow archetypes or prestige classes, they have to be cleared. Some one not keeping track of their spells is a pain because it gives you an additional thing to keep track of. I once had a player that was getting more crits then the other 4 players and my NPCs combined (one of the other players had a scimitar of keenness), I just made everyone roll dice and not pick them up until I had looked at them, his number of crits decreased. I talked with him, but he was not receptive. In 37 years of gaming, he was the only one who wasn't willing to come to some kind of agreement, so hopefully talking with the two players will help. As a GM you have to put a lot of time and effort into your campaign, so if the game isn't fun for you and your other players,then get rid of the problem players.