Issue is in your BoatTile controller. When you set params at the point of firing the event, you need to set it as an id not an object type.
Example,
({
onBoatClick : function(component, event, helper) {
var BoatClick = component.getEvent("boatSelect");
var boatId = component.get("v.boat").Id;
BoatClick.setParam("boatId" : ,boatId);
BoatClick.fire();
}
})