В общем, помог только переход на aiogram. При запросе from_user.id у сообщения, которое не было отправлено напрямую от пользователя, а от чего-то лица, выдается айди ботов-пустышек @GroupAnonymousBot и @Channel_Bot соответственно. А у этой библиотеки есть такой замечательный параметр, как sender_chat.id, который выдает, если сообщение было от анонимного администратора, то айди группы, если от канала, то айди канала. Иначе, если сообщение было просто от пользователя, то он выдаёт None. Таким образом, с помощью оператора можно задать, например, в переменную айди отправителя.
if message.sender_chat:
userid = message.sender_chat.id
else:
userid = message.from_user.id
Всем добра и позитива!