I ran into a similar issue a while ago, $_REQUEST['uid']
only shows items selected on the page, not the full filtered list.
Check if the entire list has been selected, $_REQUEST['select_entire_list'] == 1
Get the query that that has created the filtered list - $_REQUEST['current_query_by_page']
You can then use the Mass Update class to get a list of all the selected records
$mass = new MassUpdate();
$mass->setSugarBean($bean);
$mass->generateSearchWhere($module, $_REQUEST['current_query_by_page']);
$seed = BeanFactory::getBean($module);
$query = $seed->create_new_list_query('name ASC', $mass->where_clauses);
$result = $db->query($query, true);