"Foo" and "Bar" should be lowercase.
Your impression that the most significant bit is "flipped" derives from the particular choice of minimum and maximum permitted values of foo and bar in your definition of FooBar.
The permitted value range of foo, in your definition above, is -512..511. In PER, the encoding of foo occupies 10 bits. The least permitted value (-512) is encoded as 0 (in 10 bits). The next permitted value (-511) is encoded as 1 (in 10 bits). And so on.
If you define FooBar2 in the following way
FooBar2 ::= SEQUENCE { foo2 INTEGER (1234..5678), bar2 INTEGER (1234..5678) }
foo2 will be encoded in 13 bits (just enough to hold a value between 0 and 4444=5678-1234), with the value 1234 being encoded as 0000000000000, the value 1235 being encoded as 0000000000001, and so on.