int row = (int)Math.Floor((double)tileFrame / (double)tilesetTilesWide);
float y = (float)Math.Floor(i / (double)level.Width) * level.TileHeight;
You actually want integer division in these lines. So you can change these to
int row = tileFrame / tilesetTilesWide;
int y = i / level.Width * level.TileHeight;
It doesn't look like that's what causing the rendering issues though, but I haven't tested so I might be wrong.
It's a matter of preference. TiledSharp only handles importing while MonoGame.Extended handles rendering too.