And a very fine welcome to yourself Raymond Self! Welcome to the JavaRanch!
We always recommend paring down your examples as small as you can before posting them. One of the problems with getting free assistance is that if the examples are too long and complicated, no one will volunteer to wade through them!
You're using an application-scope backing bean. Usually you wouldn't want to do that, because the same object is shared between all users and unless you take steps to make access thread-safe, multiple users can really scramble things.
However, what seems to be the real problem is that your datatable is attempting to use the same object ("booking") as both the backing bean that holds the table datamodel AND as the cursor/row model object (var) within that table.
So I imagine that
JSF is probably getting pretty confused.