I just asked support this same question. They recommended this procedure (which I have not tried yet):
1. Save the running configs from current pair as UCS archives.
( https://support.f5.com/kb/en-us/solutions/public/2000/200/sol2250.html )
2. Set up the new units running 9.x (the currnt old version) on one partition, and load the UCS archives onto this pair.
Basically you're replicating the HA pair on the new hardware at this point.
3. Install a current version of the BigIP software on the other partition of the new units (9.3.1 or 9.4.6). When asked by the installer if you want to set them up with an existing config (the old config on the other partition) or clean (no config) choose the option to roll forward the old config.
At this point you have an HA pair with exact same config, only on new hardware, and on its other partition, the rolled forward version of that config. This way if there is a problem with something on the new version in your environment, you can just reboot into the old partition which you already know works.
4. Swap the hardware. I would reccomend taking the standby unit of the old pair off line, and plug the standby unit of the new pair in its place. Verify that they see each other and that they both know they are a part of an HA pair. Then fail over to the secondary unit and let it take the active roll. While it is handling the traffic, pull the remaining old unit (primary) off line, and plug the new primary into its place. Verify that the HA pair (now made of the two new units) can see one another etc, then you can fail back to make the new primary unit active.
Cheers,
Mike