As another data point, here's how it behaves on my H2O (first of its name):
Let's start with a reference, Nickel

* Nickel:
Code:
[FBInk] Variable fb info: 1080x1440, 32bpp @ rotation: 1 (Clockwise, 90°)
* Tapping the top-left corner:
Code:
0000000 591e 5c0d 89d7 0005 0003 0039 0001 0000
0000010 591e 5c0d 89fe 0005 0003 0030 0001 0000
0000020 591e 5c0d 8a04 0005 0003 0032 0001 0000
0000030 591e 5c0d 8a0d 0005 0003 0035 0092 0000
0000040 591e 5c0d 8a17 0005 0003 0036 03ab 0000
0000050 591e 5c0d 8a23 0005 0000 0002 0000 0000
0000060 591e 5c0d 8a2b 0005 0000 0000 0000 0000
0000070 591e 5c0d b494 0005 0003 0039 0001 0000
0000080 591e 5c0d b4b9 0005 0003 0030 0000 0000
0000090 591e 5c0d b4c0 0005 0003 0032 0000 0000
00000a0 591e 5c0d b4ca 0005 0003 0035 0092 0000
00000b0 591e 5c0d b4d4 0005 0003 0036 03ab 0000
00000c0 591e 5c0d b4e1 0005 0000 0002 0000 0000
00000d0 591e 5c0d b4ea 0005 0000 0000 0000 0000
----
Now to Plato:
* Plato, 270 (Visually -> UR (i.e., Portrait))
Same behavior as Nickel

. Everything okay.
* Plato, 180 (Visually, CCW I'd say, Inverted Portrait? fb origin is at the bottom-left corner).
Works properly, too.
Code:
[FBInk] Variable fb info: 1440x1080, 32bpp @ rotation: 0 (Upright, 0°)
And, as expected, touch coordinates haven't budged.
i.e.,
Code:
0000000 5aad 5c0d 9d79 0000 0003 0039 0001 0000
0000010 5aad 5c0d 9faf 0000 0003 0030 0001 0000
0000020 5aad 5c0d 9fc4 0000 0003 0032 0001 0000
0000030 5aad 5c0d 9fd3 0000 0003 0035 003d 0000
0000040 5aad 5c0d 9fdd 0000 0003 0036 0402 0000
0000050 5aad 5c0d 9fe9 0000 0000 0002 0000 0000
0000060 5aad 5c0d 9ff3 0000 0000 0000 0000 0000
0000070 5aad 5c0d d37a 0000 0003 0039 0001 0000
0000080 5aad 5c0d d398 0000 0003 0030 0001 0000
0000090 5aad 5c0d d39e 0000 0003 0032 0001 0000
00000a0 5aad 5c0d d3a8 0000 0003 0035 003b 0000
00000b0 5aad 5c0d d3b2 0000 0003 0036 0406 0000
00000c0 5aad 5c0d d3bd 0000 0000 0002 0000 0000
00000d0 5aad 5c0d d3c6 0000 0000 0000 0000 0000
00000e0 5aad 5c0d f0bb 0000 0003 0039 0001 0000
00000f0 5aad 5c0d f0e9 0000 0003 0030 0000 0000
0000100 5aad 5c0d f0ef 0000 0003 0032 0000 0000
0000110 5aad 5c0d f0f9 0000 0003 0035 003b 0000
0000120 5aad 5c0d f104 0000 0003 0036 0406 0000
0000130 5aad 5c0d f110 0000 0000 0002 0000 0000
0000140 5aad 5c0d f11a 0000 0000 0000 0000 0000
(except that for Plato, that's now the top-right corner. But that's translated properly).
* Plato, 0 (Matches Plato 180 Visually, but touch is fucked (top-left -> bottom-right [relative to Plato; when looking at the device, that's bottom-left -> top-right, not that it helps, since that's not the Touch orientation ;p])).
This might explain it:
Code:
[FBInk] Variable fb info: 1440x1080, 32bpp @ rotation: 0 (Upright, 0°)
fb rotation didn't take

.
Funnily enough, if I open a book, it switches back to Portrait, and when I exit the book to get back to the FM, the rotation *does* take, and everything works:
Code:
[FBInk] Variable fb info: 1440x1080, 32bpp @ rotation: 2 (Upside Down, 180°)
* Plato, 90, behaves somewhat similarly (i.e., sometimes broken)
----
By then, I think I've identified the common denominator in all this: If you switch from Portrait to Inverted Portrait, touch is fucked. If you switch from Landscape to Inverted Landscape, touch is fucked. (Doing it in the reverse order doesn't help).
BUT, if you mix'n match Portrait -> Landscape (inverted or not), everything's dandy.
----
For ref, the output of your script:
Code:
[10] DisplayPanel='6.8" Bottom EPD'
0 2
geometry 1440 1080 1440 1152 32
1 3
geometry 1080 1440 1088 1536 32
2 0
geometry 1440 1080 1440 1152 32
3 1
geometry 1080 1440 1088 1536 32