i just tested HAN.
There are a couple scenarios.
Using all the same files from 4.84-4.88 causes the standard visual problems seen on 4.89, from using the DEX explore_plugin.sprx are there, but package manager works.
Using the explore_plugin.sprx from 4.89 CEX fixes the visual artifacts, but the package manager will no longer work properly.
Adding the external HEN package manager has the same effect, the package manager is broken with CEX sprx.
There is currently no workaround to get package manager working and no visual artifacts, without having a 4.89 DEX file.
There is no current way to release an official 4.89 version that is 100% working.
HAN will probably be discontinued until a 4.89+ DEX PUP is available.
There is a way to fix the graphic problems caused by the old DEX explore_plugin.sprx in 4.89 but i consider is a "dirty fix" because it have a payback. I was talking abut it some days ago, but let me make a resume to see what i mean
The problem is the old .sprx (lower than 4.89) was loading some values from some specific line number of the layout.txt files (lets say is trying to load 2 values located at line 3000 and 3001)
In 4.89 sony created a displacement (of +7 lines) in the layout.txt files so now the old .sprx (lower than 4.89) have the correct values located at line 30007 and 3008... but is still trying to load the values from lines 3000 and 3001 (that belongs to something else, the displacement of +7 made that soemthing else to move onto lines 3000 and 3001)
Now the dilemma is... we could patch in the .sprx the values that indicates lines 3000 and 30001 to increase them in +7 units (to make them match with the layout.txt files from 4.89)... but in HEN/HAN we cant patch sprx files right ? (it should work in CFW though)
In other words, there is an incompatibily in between explore_plugin.sprx and the layout.txt files... and we cant patch explore_plugin.sprx so the only other alternative is to patch the layout.txt files

But this have a payback because by doing this we would be patching the values loaded by "something else" (the positions and sizes of another XMB object)... and we dont really know what thats object
To be clear and explicit, using the examples above, in 4.88 was something like this:
line 2993 value 1888
line 2994 value 67
line 2995 value 450
line 2996 value 78
line 2997 value 23
line 2998 value 1456
line 2999 value 12
line 3000 value 120 <--- the old explore_plugin.sprx was loading the value 120 from line 3000
line 3001 value 110 <--- the old explore_plugin.sprx was loading the value 110 from line 3001
In 4.89 they added the displacement of +7 in the layout.txt files and the result is something like...
line 3000 value 1888 <--- the old explore_plugin.sprx is trying to load the value 120 from line 3000... but it loads a 1888 instead (error)
line 3001 value 67 <--- the old explore_plugin.sprx is trying to load the value 110 from line 3001... but it loads a 67 instead (error)
line 3002 value 450
line 3003 value 78
line 3004 value 23
line 3005 value 1456
line 3006 value 12
line 3007 value 120 <--- this value belongs to explore_plugin.sprx but is not loaded by any XMB object if you use the old explore_plugin.sprx
line 3008 value 110 <--- this value belongs to explore_plugin.sprx but is not loaded by any XMB object if you use the old explore_plugin.sprx
So... the (dirty) solution im suggesting is to do this:
line 3000 value
120 <--- the old explore_plugin.sprx can load the value 120 from line 3000 (fixed)
line 3001 value
110 <--- the old explore_plugin.sprx can load the value 110 from line 3001 (fixed)
line 3002 value 450
line 3003 value 78
line 3004 value 23
line 3005 value 1456
line 3006 value 12
line 3007 value 120 <--- this value belongs to explore_plugin.sprx but is not loaded by any XMB object if you use the old explore_plugin.sprx
line 3008 value 110 <--- this value belongs to explore_plugin.sprx but is not loaded by any XMB object if you use the old explore_plugin.sprx
As you can see in this example the value 1888 and 67 doesnt exists anymore... but there is "something else" that is going to try to load them... so the thin line that separates this from being a "good idea" or a "bad idea" depends completly of what that "something else"

If is just a XMB object of something tiny that appears in a rare submenu (lets say, something related with CCDA audio, MP3 players, printers, or other stuff not used by many people) then is worthy... otherway if the "something else" is something critical that is going to look broken at all times then is not worthy
All this is easyer to tell than doing it, the fact is required some research and experiments to identify how many "broken connections" with the layout.txt files there are in explore_plugin.sprx
In the examples i been using along this post i just considered there are 2 broken values, but probably are a few more (dunno, the last time i was trying to count them by looking at the XMB screenshots posted by other people i counted 6 or 8)
The other day i was looking at how this references to the layout.txt files are stored in the .sprx files and i used a few guinea pigs (eula_hcopy_plugin.sprx, eula_cddb_plugin.sprx, eula_net_plugin.sprx), and it was very straightforward because the only values that differs in between 4.88 and 4.89 are this references to the layout.txt files im talking about
https://www.psdevwiki.com/ps3/Talk:XMB_Layouts#XMB_layout_references_inside_SPRX_files
Eventually i tryed to do the same with explore_plugin.sprx but the amount of differences was huge... in other words i was not able to identify them :/