I just flashed the OTA 3.16.401.10 without losing any data using the stock recovery...
The process is quite simple, just flash a stock recovery back, then flash the update manually using the stock recovery. You just need to be completely stock for this to work.
The procedure is as fallows, and it works, I've done the previous OTA just the same:
Before you start. You must be on STOCK recovery.
Steps:
A) Download the OTA, Using a file manager copy it somewhere on PC or directly on SD (ignore step C if that)
B) you must have temp root. or perm root. However you want to do it.
C) adb push OTA_Ville_U_JB_45_S_HTC_Europe_ 3.16.401.10.zip /mnt/sdcard/
D) adb shell
E) cp OTA_Ville_U_JB_45_S_HTC_Europe_ 3.16.401.10.zip /cache/update.zip (AS ROOT) / if cp does not work. You need busybox.
F) cd /cache/
G) mkdir recovery
G1) cd recovery
H) echo “–update_package=/cache/update.zip” > command
H2) exit from adb on the phone (just type exit and hit enter)
I) adb reboot recovery
I had to flash the update twice for it to go 100% but after all that it works as expected!
Also TWRP 2.8.3.0 seems to work great...
Note: if update doesn't start, or it just fails, use Vol Down on boot to access stock recovery and force flash the .zip file.