We found a work around.
bluedroid/btif/co/bta_hh_co.c
//Create and send hid descriptor to kernel
memset(&ev, 0, sizeof(ev));
ev.type = UHID_CREATE;
strncpy((char*)ev.u.create.name, dev_name, sizeof(ev.u.create.name) - 1);
ev.u.create.rd_size = dscp_len;
ev.u.create.rd_data = p_dscp;
ev.u.create.bus = BUS_BLUETOOTH; <-- changed this to BUS_USB and the keyboard started working
ev.u.create.vendor = vendor_id;
ev.u.create.product = product_id;
ev.u.create.version = version;
ev.u.create.country = ctry_code;
result = uhid_write(p_dev->fd, &ev);
Not sure if this is the correct solution, but it is a solution.