The white lines are the colour you've specified to outline the geometries, so you can tinker with that aesthetic to get rid of them.
The reason you're missing parts of the continent is, presumably, because they don't have categories (Categoria) in the data for that year, so there is nothing to plot. You could add a base map, or you could fill in the gaps for those years for which the categories don't exist (e.g. in your example, you have four countries with categories for 1991, but six of them for 1996).
I'm not familiar with the dataset you're using, but, presumably, the strange shapes are coming from there…
Here's what I get when I run your code as a reprex:
suppressPackageStartupMessages(library(tidyverse))
data <- data.frame(
stringsAsFactors = FALSE,
Categoria = c("Estado-Parte","Estado-Parte",
"Estado-Parte","Estado-Parte","Estado-Parte",
"Estado-Associado","Estado-Parte","Estado-Associado",
"Estado-Parte","Estado-Parte"),
Ano = c(1991,1991,1991,1991,1996,
1996,1996,1996,1996,1996),
region = c("Argentina","Brazil",
"Paraguay","Uruguay","Argentina","Bolivia","Brazil","Chile",
"Paraguay","Uruguay")
)
world <- map_data("world")
MSRmap <- merge(world, data)
ggplot(MSRmap, aes(long, lat, group = group))+
geom_polygon(aes(fill = Categoria))+
facet_wrap(~Ano)

Created on 2021-04-05 by the reprex package (v1.0.0)
Also, to maintain the shape, you'll need to lock in an aspect ratio for the image.