I'll start by saying that all the changes mentioned in the first post would be great additions as default setting for me.
I also agree with the points raised about the "high level" items being too easy to access in the early game phase of the game (super balls, super potions, etc..).
I don't think any of my ideas are actually amazing to improve the difficulty aspect of the game, but I'll still throw them in in case they inspire someone else to come up with something more interesting.
(Disclaimer, I haven't played too much since the release of the 1.20 version since I've always played with a bunch of other mods that I've gathered over the years to make the game a bit more interesting and they are not compatible with the latest version, so I apologize if I mention something already implemented)
Regarding the different resources in the game, I found that I quite enjoy getting material from the move skills (foraging) and also from battle loots (i.e. leather from Sentret).
Maybe it could be interesting when it comes to restricting access to mid / late game items (ultra balls, etc..) to have different loot tables based on the level of the pokémon?
So for example, a low level steel / rock pokémon type would drop simple materials like iron, but the same pokémon would drop better materials if it was higher level.
The topic of the difficulty itself is very difficult.. especially if we want the endgame to have some degree of replayability..
The only thing that I can think of from the top of my head right now is.. radical red..
This rom hack became very popular for its difficulty based on gyms leaders having strong teams with strong movesets.
I think I would enjoy to see this kind of difficulty in Pixelmon.
I'm still very attached to the badge collection aspect, and I remember being very happy to see that a badge case existed in Pixelmon so that we could go explore and progress this way.
So my personal idea for endgame would be to capitalize on this aspect. Make the gym leaders have strong challenging themed teams with strong movesets, collecting all the badges and once the badge case item is filled with all the badges type, we could go back to a city where a new NPC would (maybe via a "main quest" that we would get from the start of the game?) congratulate us and allow us to face the elite 4 which would be a "marathon" battle where we would have to face 4 challenging NPC in a row with restricted access to items or ability to switch team.
Once this challenge is completed, a "new season" would start.
A new badge case would need to be filled to challenge a new set of NPC as the elite 4.
Maybe these 4 NPCs could be the same but with higher level every time, to see how far we could go?
Maybe defeating them would increase the max level of the next set of NPCs, or even the level of any wild pokémons to make the whole world become more difficult?
I feel like there could be a lot of brainstorming from this point on what would happen exactly.
I got many more ideas but they are not really related to the difficulty so I'll stop there to not go off topic too much..