Well I got the most things now...but there's something wrong with the rotation.
As you can see there is something wrong with the left side, The bridge is worng and many more, like the stone, house etc.
Here is the code I'm using:
for (int i = 0; i < bms.Points.Count; i++)
{
float newX = (float)(bms.Points[i].X * Math.Cos(-rotation) - -bms.Points[i].Y * Math.Sin(-rotation));
float newY = (float)(bms.Points[i].X * Math.Sin(-rotation) + -bms.Points[i].Y * Math.Cos(-rotation));
bms.Points[i].X = newX + X;
bms.Points[i].Y = newY + Y;
}