cbgjData::getGroups( null, array( 'id', '=', (int) $b ), null, null, false );
cbgjData::getCategories( null, array( 'id', '=', (int) $a->category ), null, null, false );
Both of those are for grabbing a specific group or category. You'd use standard database objects for that now, which would be as follows.
Group
Code:
$group = new GroupTable();
$group->load( (int) $id );
Category
Code:
$category = new CategoryTable();
$category->load( (int) $id );
You can also use the below, which have their own caching behavior.
Group
Code:
$group = CBGroupJive::getGroup( $id );
Category
Code:
$category = CBGroupJive::getCategory( $id );
All of this is namespaced so you need to use a "use" statement to include the namespace or you need to specify it at your usage. Suggest loading your Joomla install into an editor like phpstorm to make this easier. For example the above cached usages are namespaced with CB\Plugin\GroupJive\CBGroupJive.
CBuser::getInstance( null );
Still exists. That would return a guest user CBuser object though.