don't have experience with VIO, sure sounds like something host related. Can't be physical media as you have two HBAs exhibiting the same behavior.
I have had a decent number of issues getting virtuals on AIX to login to the SAN properly (we also boot from san). Make sure that any HBA port not configured to an LPAR has the loopback connector in it (seems to wonk out scanning). We do at times have to network boot the LPAR multiple times to get it to login correctly; the SAN switch will show green but as a U as it doesnt seem to complete a fabric login only the port login, this is at the physical VIO level.
Whats really odd is when the parent VIO will be logged in on all its paths but the underlying virtual is where the problem occurs. We know physically its there as the VIO is connected up on the true WWPN of the HBA and the virtual has a generated WWPN; so far they all start with C0:00 on AIX. Again the virtual LPAR has to be network booted several times to get it to finally login all the way.
Once it is in the SAN we havent had too many issues getting the system to pick up the disks. We have had instances where a virtual will lose a path for no apparent reason. All the other virtual LPAR's and the parent VIO's will be fine, again a reboot will fix it; scanning rarely does.
From the storage guy perspective I am not terribly thrilled with AIX and virtual systems. It shouldnt take what it does to get these things working correctly in a SAN environment. Dont even get me started on the caveats to support live partition mobility with a SAN environment.
Has the host established paths to the array?