Backdoor Access for a packed Structure of different register and an unpacked multi-dimension array of register

In reply to Abhishek kumar Diwakar:
uvm_hdl_deposit and uvm_hdl_read are not specific register backdoor routines. They can be used in any place also without a register model.

The uvm_hdl_read/uvm_hdl_deposit are restricte to integral data types.
See the definition of

function int uvm_hdl_deposit(string path, uvm_hdl_data_t value);
uvm_hdl_data_t

is the following

typedef logic [UVM_HDL_MAX_WIDTH-1:0] uvm_hdl_data_t;

Did you check the HDL path? Does it exist?. If the return value is 0 this ccould be an inducation it is wrong/incomplete.
You can use

uvm_hdl_check_path

to check the path