Another possibility is piston/valve interference. I once had a 383 that wouldn't rev past about 3500, and that was the cause. I found out about it once it took out a valve and ate a piston.

I hadn't checked the P/V clearance and it bit me hard.

So, has the piston to valve clearance been checked?