The custom user integration always fetches the users ranging 0 to numresults. startIndex is not taken into consideration. Code must be updated to match the DefaultUserProvider code.
public Collection<User> getUsers(int startIndex, int numResults) {
Collection<String> usernames = getUsernames(startIndex, numResults);
return new UserCollection(usernames.toArray(new String[usernames.size()]));
}