Never use FIRST, LAST, DFirst() or DLast(). They just don't work like you think they do.
You're post drowned me in code and irrelevant details, so I am not clear how to help you specifically, so I will in general. In general, instead of LAST in a query, you should build a subquery using MAX...