First of all to make the game harder set it on set mode and don't use hold items. Also limit your use of healing items, I limited myself to a max of 4 items per match and no revives or something like that because the elite four also only carries 4 items. This sort of makes you equal to the cpu trainers because none of them carry hold items, can't switch out when they defeat one of your pokémon or use unlimited items. The only real advantage you have is the fact you are human.
Only use exp share if you are leveling weak pokémon so you should only carry one leveled up pokémon so that you don't get overpowered. Don't hunt pokémon with benificial natures and don't ev train, because if you do that even with the above rules the game will be a cakewalk.
As for pokémon, its hard to say. X and Y have a lot of pokémon in the game and suggesting only some is very hard to say. Also base stat total doesn't really say much about how good a pokémon is. For example Gengar has 500 base stat total and is very strong and good. Talonflame has 499 total although with flamebody its not that great but for a playtrough still very good. But at the same time below 400 is almost only secondary forms or pokémon with no evolution line. If I were you I would just make a team of gen 6 Pokémon and go with that(I mean it is a gen6 game).
You could also try doing a nuzlock run. If you don't know what that is just google it or go to the challange boards. A lot of people have ideas there for a more challenging experience.
I hope I helped you with this and good luck with your run.
Thanks for the tips! I'll probably use a lot of this on my run. I'm not hardcore enough to nuzlocke though haha!