Несколько вещей выделяются ...
Во-первых, вы определяете 3 строки для вашей сетки, но StackLayout, который содержит Button, находится в Grid.Row = "2", это должно быть 1, если оно должно быть под каруселью. (Лучше всего для удобства чтения поместите Grid.Row = "0" на Карусель)
Во-вторых, вам не нужно оборачивать кнопку StackLayout и помещать HorizontalOptions в FillAndExpand для кнопки, чтобы заполнить весь размер сетки.