This occurs when the first 252 characters are not a usable intro, and end in the middle of a tag that won't render well without the information after it.
In the given example, the first 252 characters start a TEMPLATE invoke, and sets an image-related parameter to a URL that goes past the 252 characters. So the full URL does not get passed, and the image is broken, and none of the other parameters after the URL get passed into the template either.
If you take a look at your example, I have attempted a workaround for this problem. Basically, the order of the 252 character limit is changed to apply after rendering the full target, and then only counting characters that appear as text (rather than including characters that are parts of tags). From what I can see, all 3 previews in the example now display more favorably, but please review and let me know if the solution is satisfactory.