Could you please post the table structure as this could be caused by a field mismatch. As well as your sorting is incorrect with the CArrayDataProvider the sorting needs to be declared as follows.
Also for the type of application your building and the possible amount of data that might get trough this I’ll recommend keeping this in the database with a UNION function ether with a stored procedure or with CSqlDataProvider. If you need any more detailed help to be afraid to ask.
I’ll need to see the table columns to be able to help you with the union query. But maybe a better solution performance wise is to create a additional table called something like “feed_item” that stores meta data that will be used for filtering and ordering with a generic relation to the table:
This way you’ll easily be able to filter and order quickly and get all the relevant information with out a complicated query. Just add a afterSave() method or behaviour that will record the feed_item.