In addition to the MatValid, VecValid issue that you have noted -- our solution is to set the petsc objects to 0 in pstart and then check for a 0 value in place of VecValid etc. In parstop.F we check again on 0 in place of the XXXValid checks.
The other problem is that in the latest Petsc they have changed a number of conventions on the creation of matricies. Also they have updated to the latest version of Metis which is also somewhat problematic since the Fortran interface to Metis is broken.
We do have the changes to make FEAP work with the latest version but they are not complete.
If you are in a hurry, the basic thing to do is change from MatCreateMPIBAIJ to MatCreateBAIJ and MatCreateMPIAIJ to MatCreateAIJ
Also to fix the Metis 5.x issue I have attached a new parfeap/unix/parmetis.F and a new parfeap/unix/smetis.c file.
The changes are a bit of pain and we have not come up with a good integration yet. Though with a little effort you can
get if working.