That worked - once I had sorted out some quick VRRP to ensure that the nexthop wasn’t a specific routers’ IPv6 address; no point in doing BGP if it can’t failover to an alternative route!
Reverting back to previous config; I get the following:
[admin@tcw-gw1.man.spilsby.net.uk] > /ipv6 route print where dst-address is 2a01:568:3000::/64
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, o - ospf, b - bgp, U - unreachable
# DST-ADDRESS GATEWAY DISTANCE
[admin@tcw-gw1.man.spilsby.net.uk] > /ipv6 route print where dst-address is "2a01:568:3000::/64"
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, o - ospf, b - bgp, U - unreachable
# DST-ADDRESS GATEWAY DISTANCE
[admin@tcw-gw1.man.spilsby.net.uk] >
Going by the above, the route doesn’t actually appear via the console but it does appear within Winbox (fields and values copied below):
Dst. Address: 2a01:568:3000::/64
Gateway: 2a01:568:fff:f003:20c:42ff:fe43:739c (unreachable)
Check Gateway: (empty)
Type: unicast
Distance: 200
Scope: 40
Target Scope: 255 (this is being set via incoming route filter like its’ IPv4 cousin)
Received From: hex-ipv6-int-gw1
BGP Local Pref.: 100
BGP Origin: EGP (now this confuses me; both routers and their single BGP instances each specify the same AS number - 43950 - so why this is being considered as EGP, I don’t know - this should be igp, right ?)
Both routers can ping each other and I can confirm there are currently no traffic filters between them; these only get put in place after issues like this are fixed otherwise you end up diagnosing problems that may not actually exist, etc, etc.
Enabling ‘Check Gateway’ with method ‘ping’ doesn’t seem to provide any other useful information either 
Although, just to assure you that I’m not going mad:
[admin@tcw-gw1.man.spilsby.net.uk] > /ping 2a01:568:fff:f003:20c:42ff:fe43:739c
2a01:568:fff:f003:20c:42ff:fe43:739c 64 byte ping: ttl=63 time=8 ms
2a01:568:fff:f003:20c:42ff:fe43:739c 64 byte ping: ttl=63 time=8 ms
2a01:568:fff:f003:20c:42ff:fe43:739c 64 byte ping: ttl=63 time=8 ms
2a01:568:fff:f003:20c:42ff:fe43:739c 64 byte ping: ttl=63 time=8 ms
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 8/8.0/8 ms
[admin@tcw-gw1.man.spilsby.net.uk] > /tool traceroute 2a01:568:fff:f003:20c:42ff:fe43:739c
ADDRESS STATUS
1 2a01:568:fff:f001:20c:42ff:fe20:7ee4 1ms 1ms 1ms
2 2a01:568:fff:f003:20c:42ff:fe43:739c 9ms 9ms 9ms
… and peer config:
[admin@tcw-gw1.man.spilsby.net.uk] > /routing bgp peer export
<snip countless other IPv4/IPv6 peers>
add address-families=ipv6 as-override=no comment="" default-originate=never \
disabled=no hold-time=3m in-filter=spilsby-tcw-ipv6-multihop-ibgp-in \
instance=default interface=ether1 multihop=yes name=hex-ipv6-int-gw1 \
nexthop-choice=force-self out-filter="" passive=no remote-address=\
2a01:568:fff:f003:20c:42ff:fe43:739c remote-as=43950 remove-private-as=no \
route-reflect=no tcp-md5-key="" ttl=default use-bfd=no
Config on the remote router is identical (except remote peer address of course!) and a full iBGP mesh is configured between all routers on this AS (all of which are RouterOS 4.10 devices - either RB1000 or RB1100).
Regards,
Terry Froy
Spilsby Internet Solutions