I don't think you learn something useful by replicating VV. The model BBG uses has not been updated for about 20 years, and the latest white paper is from 2007 ("Variations on the Vanna-Volga Adjustment").
That said, when I tested it today, it is actually quite robust in the EAKO case. I think the reason is that the nature of the product is quite simple. The EKI and AKO are essentially independent structures. If you price a normal EKI and set EAKO AKO to 0 (it does not take 0 directly, just make it sufficiently close), you see the price is identical. If you now price a Down and out American barrier and compare by how much the price declines in % from the vanilla case, you can compute the adjustment needed in the EKI to get to the EAKO (same percentage drop roughly). That holds within 0.05% of notional for all variations I tested.
Since you write you are trying to replicate those models for learning purposes, I assume you are able to do the "simple" stuff already? E.g.
- match the vanilla model in BBG exactly? or
- solve delta for strike (especially for delta premium included pairs) - this will in fact be needed for VV?
- Compute a vol surface from ATM DNS, RR and BF quotes?
- Compute the price of a digital (BBG uses dK = 1% in the call spread)? or
- compute the CME triangulation between the 3 books (PQO, FUT, VQO)? which is an interesting example outside of BBG
- compute probabilities of hitting touch / no touch in BS world? (also needed for VV)
In my opinion, instead of trying to compute VV, implementing a PDE solver for American options or computing a Heston model is more useful. Replicating the SLV in BBG is impossible because you lack the input data needed to calibrate (barrier option prices specifically).
If you still want to do it, Uwe Wystup - Mathfinance provides a good explanation of VV. I found an online source for the BBG doc.
What is particularly needed is the following equation:
(sorry for copy pasting a pic, but that saved quite a few minutes which helps a parent of 2 lovely young kids).
- compute strikes and prices for 3 vanilla with BS (ATM, 25d call and 25DP)
- reprice again using ATMF vol to compute theoretical BS value (no smile) and also get the Vega, Vanna and Volga (matrix on the left of the BBG whitepaper screenshot above)
- compute difference to BS price, vega, vanna and volga in USD values (right hand side vector $Y_{ATM}$ ...)
- solve the linear system of equations to obtain the VV coefficients ($v_{vega}$, $v_{vanna}$, $v_{volga}$ in the middle of the screenshot)
- Compute the BS vega, vanna and volga for the KO using the ATMF Vol (just use the BBG pricer (OVML) if you want to be quick)
- compute the probability of not hitting the barrier (use BBG pricer and a down and out no touch for example - again using BS; which assumes you did the "simple" stuff already before tackling this). I call this p_sym like in the BBG paper although strictly speaking, this is wrong. The reason the author uses p_sym is that BBG uses an average of the probabilities of hitting the barrier in FOR ccy numeraire and DOM ccy numeraire in order to be symmetric. However, normally these two probabilities should not be far apart and this simplification should work just fine.
- Compute the VV adjustment using the BS greeks of the KO ($X_{vega}$...), p_sym and the coefficients computed above

$X^{BS}$ is just the BS price, the term to he right is the VV adjustment. I suspect the reason BBG defaults to this is that it is only a handful of computationally "cheap" steps. SLV is a lot more complex (which is why you need to tell OVML manually to calc the price by pushing the button). If you now have thousands of clients pricing products, that quickly makes a big difference.
Last but not least, why do you look at EAKO? In my experience, this is not really something traded much. TARFs (and all sorts of variations like Pivot, Chooser, Conditional etc) are probably the most important options to know in FX (aside from vanilla, and standard barriers and digitals). Followed by accumulators.