How to work out physical address corresponding to logical address?
You are correct in your reasoning that the pages are $256$ bytes and that the physical memory capacity is $4096$ bytes.

However, there are errors after that.

The offset is the distance (in bytes) relative to the start of the page.  I.e., logical_address mod page_size.  The bits for this portion of the logical address are not translated (given power of two page size).

The logical (virtual) page number is number of (virtual) page counting from zero.  I.e., $$\frac{logical\_address}{page\_size}$$

As you noted, the physical page is determined by the translation table, indexed using the logical (virtual) address.

Once the physical page number had been found, the physical address of the start of that page is found by multiplying the physical page number by the page size.  The offset is then added to determine the precise physical address.  I.e., $$(physical\_page\_number \times page\_size) + offset$$

So a logical address of, e.g., $508$, with $256$ byte pages would have an offset of
$$508 \mod 256 = 252$$
The logical/virtual page number would be
$$\frac{508}{256} = 1$$
With the given translation table, logical page $1$ translates to the physical page number $2$.  The physical address would then be
$$physical\_page\_number \times page\_size + offset = 2 \times 256 + 252 = 764$$