if u take mesprit down to minimal health it wil stay like that and wont recover, so if u get it that far and then use the map in the pokewatch to see it move around on the map moving between routes moves it around the map so if u find a spot where it goes and move between 2 routes u can gradually manuever it to ure area, once its there u can run around the grass and find it usually pretty easily, and since uve already taken its health down u just need to focus on catching it. After using mean look or arena trap effects and can sit a powerful pokemon out front and keep healing it while throwing as many ultra balls as u can if u follow this its pretty easy to capture it only took me a couple o attempts to do this nd not too long using level 50-60's
Pokemon Diamond / Pearl (DS): PokeWalkthrough
Gd Luck