Should I dispose of all manually created resources?

AFAIK GraphicsDevice (GD) holds a list of all the resources created (manually and via ContentManager, they’re the same to GD). When exiting the game GD frees all that content.

Should you dispose manually? It depends on the scope of your game. If you do a simple game or a game that loads very few things, my opinion is that you don’t need to manually dispose. GD will do all the work for you on exit.

If you do a big game with hundreds of maps, textures and models you may need to dispose your resources, not because leaks, but rather for the fact you’ll just run out of (GPU) memory.

That said, the leak when creating lots of VertexBuffer may be related to this: https://github.com/MonoGame/MonoGame/issues/6861

Also, when hunting GPU leaks you may find this thread interesting: GPU memory leak If you can recompile MonoGame, that patch works very well (I first intended to use it for debug, but now I have it integrated into my local copy of MonoGame to detect leaks on the spot)