5v tolerance on 3.3v PIC
Not clamping diodes per se, but there will be some kind of ESD protection structure, one that does not kick in until you've exceeded the absolute maximum input voltage specification.

Yes, your clamp to Vdd should work fine, provided Vdd does not go out of spec because of the clamp current. It is better than a Zener (given the caveat) because it goes down with Vdd, also Zeners &lt; 5V or so are really crummy.

Note that in general 5V tolerance may not be guaranteed if Vdd is 0V, which may be of concern since the 12V is from an external source. You'll be exceeding the 300mV maximum most likely, but I doubt that is a real problem, especially with limited current, but I wanted to flag it for evaluation and possible testing.

Edit: I looked at this particular chip, and Microchip has used a more reasonable abs max rating than on some other parts- the maximum input voltage is limited to 3.6V on 5V-tolerant inputs when Vdd &lt; 3V, so it should be ok with the clamp diode, assuming the Vdd=2.999V condition isn't a problem! If you're paranoid, use a Schottky clamp such as BAT54C and keep the current low enough to guarantee the 0.3V drop but high enough that leakage isn't an issue.

 

Another approach is to make a special clamp supply bus using something like a TL431 shunt regulator and connect all your diode clamps to there. You're free to choose whatever voltage makes sense (via the two resistors that set the voltage) and the TL431 is guaranteed to be able to sink (at least momentarily) 100mA total. By separating the shunt regulator from the clamp diodes you're free to use very low capacitance fast switching diodes and still have hefty sink capability. With a TL431 and a BAT54S per pin you could easily handle transients of hundreds of volts using a 10K resistor.