The zodiac compatibility modifier is applied only to the attacking character's XA, not the WP. Ramza's attack against Lavian in your example should be calculated as (6 - [6*0.25])*7, which works out to 35. And attacking Gafgarion would be (6 + [6*0.25])*7, which gives 49.
Also note that when applying compatibility you multiply by either 0.25 (good/bad) or 0.50 (best/worst), then add/subtract that number to the original XA to get the new value. Using the Orbonne example vs Lavian again, the compatibility modifier changes Ramza's PA in the calculation to 5. If you calculated 6*0.75 instead, you would get 4.5 (or 4, since FFT truncates nearly all non-integer values) which is incorrect.
Also note that when applying compatibility you multiply by either 0.25 (good/bad) or 0.50 (best/worst), then add/subtract that number to the original XA to get the new value. Using the Orbonne example vs Lavian again, the compatibility modifier changes Ramza's PA in the calculation to 5. If you calculated 6*0.75 instead, you would get 4.5 (or 4, since FFT truncates nearly all non-integer values) which is incorrect.