I think the 3rd generation games have a perfect difficulty considering the limitations of "story" play. Players might be able to get past the first couple of gyms without much thought, but they'll need to grasp the more crucial elements of the battling system to succeed throughout the rest of the game. In other words, they aren't pushover games. Of course almost the in-game will be easy if you grind a lot, but this comes at the fair cost of time. Competitive battling strategies can't apply anywhere except in places like the Battle Tower, so hoarding items can almost always ensure victory.
If anything, include optional events in your hack that provide a higher challenge for the player if he or she so chooses to participate in. This can typically only be done by bringing in trainers with level 100 Pokémon. Otherwise, players will find ways to make battles be more easily beatable, even if it requires grinding. The only truly effective methods of increasing difficulty for non-Battle-Tower-esque areas of Pokémon games are if the players themselves impose their own restrictions, such as the Nuzlocke Challenge.